
17.03.2008, 03:35
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами:
10625303
Репутация:
39
|
|
Php - Определение Ip
Может кто-нибудь подсказать, реально ли через Php`овый скрипт определить серый Ip пользователя, сидяшего через Nat?
$_server["remote_addr"] и
$_server["http_x_forwarded_for"]
Несколько не то...
|
|
|

17.03.2008, 07:49
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
нельзя )
Если конечно лишний заголовок не прилепляется )
|
|
|

17.03.2008, 08:52
|
|
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
С нами:
9589849
Репутация:
177
|
|
только через java и подобные языки
|
|
|

17.03.2008, 10:24
|
|
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
С нами:
9880226
Репутация:
209
|
|
Да, другим словом, через скрипты\аплеты , выполняющиеся на стороне пользователя...(java, flash и т.д)
|
|
|

17.03.2008, 10:40
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами:
10625303
Репутация:
39
|
|
Спасибо... Буду ковырять Java...
|
|
|

19.03.2008, 00:41
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
Попробуй так:
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);
|
|
|

19.03.2008, 07:48
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
только таким образом спокойно можно подделать айпи лишним заголовком 
|
|
|

19.03.2008, 16:12
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами:
10625303
Репутация:
39
|
|
Pashkela, не, не помогло... Моя тут озадачился... Вот идет пакет от узверя, через маршрутизатор. Маршрутизатор его натит на серв. Серв отвечает, маршрутизатору приходит ответ. У маршрутизатора 254 клиента. Которому слать? А он ведь знает... Значит где-то в хедерах оно есть. Притом не в пакете, иначе серв-бы клал-бы на это содержимое, а именно в заголовках. Просто по логике его не может не быть, иначе обратный нат получается невозможным. Следовательно ежели он есть, его можно выцепить. Я слабо знаком с php и не уверен, могет ли он енто делать, но по логике должен. Но в любом случае, на серве это выцепить можно, и не обязательны скрипты, запускающиеся на стороне пользователя. Кстати джава под никсами будет безполезна, потомучто смертный пользователь, от которого запущен браузер просто не сможет посмотреть ip. Тупо не хватит прав... Гугления чет мне особо ничего не дали =( но моя продолжает упорно ковырять, ибо скрипт нужен...
Сообщение от nerezus
только таким образом спокойно можно подделать айпи лишним заголовком
Можно и Пентагон взломать, тут дело в другом. Есть много деревянных пользователей, за которыми нужен учет...
Последний раз редактировалось OdaN; 19.03.2008 в 16:34..
|
|
|

22.03.2008, 19:49
|
|
Участник форума
Регистрация: 24.07.2007
Сообщений: 175
С нами:
9894086
Репутация:
102
|
|
Сообщение от OdaN
Pashkela, не, не помогло... Моя тут озадачился... Вот идет пакет от узверя, через маршрутизатор. Маршрутизатор его натит на серв. Серв отвечает, маршрутизатору приходит ответ. У маршрутизатора 254 клиента. Которому слать? А он ведь знает... Значит где-то в хедерах оно есть. Притом не в пакете, иначе серв-бы клал-бы на это содержимое, а именно в заголовках. Просто по логике его не может не быть, иначе обратный нат получается невозможным. Следовательно ежели он есть, его можно выцепить. Я слабо знаком с php и не уверен, могет ли он енто делать, но по логике должен. Но в любом случае, на серве это выцепить можно, и не обязательны скрипты, запускающиеся на стороне пользователя. Кстати джава под никсами будет безполезна, потомучто смертный пользователь, от которого запущен браузер просто не сможет посмотреть ip. Тупо не хватит прав... Гугления чет мне особо ничего не дали =( но моя продолжает упорно ковырять, ибо скрипт нужен...
Можно и Пентагон взломать, тут дело в другом. Есть много деревянных пользователей, за которыми нужен учет...
КЛиент открывает порт, подает запрос, сервер отвечает, клиент закрывает порт.
Пока соединение не закрыто, клиент может спокойно принимать любые данные.
Код:
GET /cgi-bin/params.pl HTTP/1.1
Host: old.antichat.ru
Accept: */*
Accept-Encoding: gzip
Connection: keep-alive
HTTP/1.x 200 OK
Date: Sat, 22 Mar 2008 15:45:38 GMT
Server: Power MOD by web4host.net
Keep-Alive: timeout=15, max=297
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=windows-1251
Content-Language: ru
Как видишь в HTTP заголовке никаких данных о клиенте нету.
|
|
|

24.03.2008, 23:15
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами:
10625303
Репутация:
39
|
|
Лан, с натом я более-менее разобрался, с серверной стороны енто не выцепить, или по крайней мере это вне моего разумения. Тогда возникает вопрос, сталкивался ктонить с подобными задачами, но если уже использовать скрипты на стороне пользователя? Javascript, или аплеты? или мож еще чегонить, с чем я не знаком? или мож хотя-бы есть ссылки на адекватные статьи?
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Books PHP
|
FRAGNATIC |
PHP |
186 |
21.02.2010 02:41 |
|
Что такое Php?
|
PAPA212 |
Болталка |
13 |
28.12.2007 20:44 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|