Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Инфо об ип. (https://forum.antichat.xyz/showthread.php?t=205568)

Pasteryk 20.05.2010 23:54

Инфо об ип.
 
Есть такой скрипт по определению инфы об ип.Но он выводит инфу об ип только тому кто его открыл как зделать так чтоб эта инфа и мне в файл записалась.Помогите плз) :rolleyes:

Цитата:

<?php

function ip(){
if ( getenv ('REMOTE_ADDR')) {$user_ip = getenv ('REMOTE_ADDR');}
elseif ( getenv ('HTTP_FORWARDED_FOR')) {$user_ip = getenv ('HTTP_FORWARDED_FOR');}
elseif ( getenv ('HTTP_X_FORWARDED_FOR')) {$user_ip = getenv ('HTTP_X_FORWARDED_FOR');}
elseif ( getenv ('HTTP_X_COMING_FROM')) {$user_ip = getenv ('HTTP_X_COMING_FROM');}
elseif ( getenv ('HTTP_VIA')) {$user_ip = getenv ('HTTP_VIA');}
elseif ( getenv ('HTTP_XROXY_CONNECTION')){$user_ip = getenv ('HTTP_XROXY_CONNECTION');}
elseif ( getenv ('HTTP_CLIENT_IP')) {$user_ip = getenv ('HTTP_CLIENT_IP');}
else {$user_ip='unknown';}
if (15 < strlen ($user_ip)){
$ar = split (', ', $user_ip);
for ($i= sizeof ($ar)-1; $i> 0; $i--){
if ($ar[$i]!='' and !preg_match ('/[a-zA-ZЮ-Ъю-ъ]/', $ar[$i])){
$user_ip = $ar[$i];
break;
}
if ($i== sizeof ($ar)-1){$user_ip = 'unknown';}
}
}
if ( preg_match ('/[a-zA-ZЮ-Ъю-ъ]/', $user_ip)){$user_ip = 'unknown';}
return $user_ip;
}

function whois($server,$ip){
$fp = @fsockopen ($server, 43, &$errno, &$errstr, 30);
if (!$fp){ return false; }
else {
$servers .= $server."<br>\n";
@fputs ($fp, $ip."\r\n");
$text = "";
while ( !feof ($fp)) { $text .= @fgets ($fp, 128)."<br>\n"; }
@fclose ($fp);
$search = "~".preg_quote("ReferralServer: whois://","~")."([^\n<:]+)~i";
preg_match ($search, $text, $out);
if (! empty ($out[1])) { return whois($out[1], $ip); }
else return $servers.$text;
}
}


$ip_user = ip();


print "<h1>$ip_user</h1>";


$content = whois ( "whois.ripe.net", $ip_user );

if ($content == ''){ print "мЕБНГЛНФМН БШБЕЯРХ ДЮММШЕ НА Ip: $ip_user"; }
else { print $content; }
?>

roxblnfk 21.05.2010 00:07

в начале скрипта
ob_start();

в конце
PHP код:

if(strlen($S ob_get_contents())>0){
    
$f fopen("file.log","w");
    
flock($f,LOCK_EX);
    
fwrite($f,$S);
    
flock($f,LOCK_UN);
    
fclose($f);
}
ob_end_clean();
echo 
$S


Pasteryk 21.05.2010 18:31

ПАсиб)
Я так понял что если один и тот же ип нажмет на ссылку то статистика на него еще раз не запишется?

roxblnfk 21.05.2010 18:47

В данный момент у тебя файл просто перезаписывается по-новой, всё, что было в нём до этого стирается.
Чтобы инфа дописывалась, измени

$f = fopen("file.log","w");

на

$f = fopen("file.log","a");

Ну и при записи строки можешь разделитель строки вставить "\r\n"
Типа как:

fwrite($f,"\r\n\r\n".$S);

ps: спасибо выражается повышением репутации :)

Pasteryk 21.05.2010 22:45

А еще такой вопрос.А можно зделать так чтоб тому кто открыл скрипт например картинка показывалась или переадресация на който сайт шла.Напишите два варианта плиз.


Время: 16:49