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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Php - Определение Ip (https://forum.antichat.xyz/showthread.php?t=64540)

OdaN 17.03.2008 03:35

Php - Определение Ip
 
Может кто-нибудь подсказать, реально ли через Php`овый скрипт определить серый Ip пользователя, сидяшего через Nat?

$_server["remote_addr"] и
$_server["http_x_forwarded_for"]

Несколько не то...

nerezus 17.03.2008 07:49

нельзя )
Если конечно лишний заголовок не прилепляется )

imajo.ati 17.03.2008 08:52

только через java и подобные языки

biophreak 17.03.2008 10:24

Да, другим словом, через скрипты\аплеты , выполняющиеся на стороне пользователя...(java, flash и т.д)

OdaN 17.03.2008 10:40

Спасибо... Буду ковырять Java...

Pashkela 19.03.2008 00:41

Попробуй так:


if (isSet($_SERVER))
{
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif (isSet($_SERVER["HTTP_CLIENT_IP"]))
{
$realip = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$realip = $_SERVER["REMOTE_ADDR"];
}
}
else
{
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )
{
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
}
elseif ( getenv( 'HTTP_CLIENT_IP' ) )
{
$realip = getenv( 'HTTP_CLIENT_IP' );
}
else
{
$realip = getenv( 'REMOTE_ADDR' );
}
}
$user_reg_id = $realip;
$user_reg_host = gethostbyaddr($realip);

nerezus 19.03.2008 07:48

только таким образом спокойно можно подделать айпи лишним заголовком ;)

OdaN 19.03.2008 16:12

Pashkela, не, не помогло... Моя тут озадачился... Вот идет пакет от узверя, через маршрутизатор. Маршрутизатор его натит на серв. Серв отвечает, маршрутизатору приходит ответ. У маршрутизатора 254 клиента. Которому слать? А он ведь знает... Значит где-то в хедерах оно есть. Притом не в пакете, иначе серв-бы клал-бы на это содержимое, а именно в заголовках. Просто по логике его не может не быть, иначе обратный нат получается невозможным. Следовательно ежели он есть, его можно выцепить. Я слабо знаком с php и не уверен, могет ли он енто делать, но по логике должен. Но в любом случае, на серве это выцепить можно, и не обязательны скрипты, запускающиеся на стороне пользователя. Кстати джава под никсами будет безполезна, потомучто смертный пользователь, от которого запущен браузер просто не сможет посмотреть ip. Тупо не хватит прав... Гугления чет мне особо ничего не дали =( но моя продолжает упорно ковырять, ибо скрипт нужен...

Цитата:

Сообщение от nerezus
только таким образом спокойно можно подделать айпи лишним заголовком

Можно и Пентагон взломать, тут дело в другом. Есть много деревянных пользователей, за которыми нужен учет...

NOmeR1 19.03.2008 17:26

Попробуй
Код:

$_SERVER['HTTP_CLIENT_IP']
Код:

$_SERVER['HTTP_X_REAL_IP']

OdaN 19.03.2008 18:07

Цитата:

Сообщение от NOmeR1
Попробуй
$_SERVER['HTTP_CLIENT_IP']
$_SERVER['HTTP_X_REAL_IP']

Гм... странно эти переменные вообще не определились... php возвращает false...

======
Мож конечно я че накосячил, повторюсь, с php работаю недавно...
PHP код:

<?php
$ip1 
$_SERVER['HTTP_CLIENT_IP'];
$ip2 $_SERVER['HTTP_X_REAL_IP'];
if (!
$ip1) echo 'f1';
else
echo 
"$ip1";
if (!
$ip2) echo 'f2';
else
echo 
"$ip2";
?>

Вот енто выводит 'f1f2'...


Время: 20:43