Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер? / 12 сообщений из 12, страница 1 из 1
04.11.2014, 15:46
    #38795272
DEugeneV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
решил по-быстрому, между прямых задач по 1С, замутить свой сайтик техподдержки на предприятии (FAQ по самым горячим вопросам, хелп по основной работе пользователей и прием заявок).
Поставил lighttpd, прикрутил Strawberry Perl, MS SQL Server Express 2005, соорудил страничку - все супер, но... Не могу получить имя компа, с которого на страницу заходит юзер! IP-адрес - без проблем, $ENV{REMOTE_ADDR}, а $ENV{REMOTE_HOST} - пуст... точнее, даже нет такого ключа в хэше %ENV, вижу это, перебирая его полностью:

SERVER_PORT - 81
HTTP_ACCEPT_ENCODING - gzip,deflate,sdch
SERVER_SOFTWARE - LightTPD/1.4.32-1-IPv6 (Win32)
REMOTE_ADDR - 127.0.0.1
SERVER_PROTOCOL - HTTP/1.1
SERVER_ADDR - 0.0.0.0
SCRIPT_NAME - /index.pl
CONTENT_LENGTH - 0
SYSTEMROOT - C:\WINDOWS
WINDIR - C:\WINDOWS
REQUEST_METHOD - GET
HTTP_CACHE_CONTROL - max-age=0
REQUEST_URI - /
DOCUMENT_ROOT - C:/asup/docroot/
HTTP_USER_AGENT - Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
SCRIPT_FILENAME - C:/asup/docroot/index.pl
SERVER_NAME - localhost
GATEWAY_INTERFACE - CGI/1.1
HTTP_ACCEPT_LANGUAGE - ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
HTTP_HOST - localhost:81
HTTP_ACCEPT - text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
HTTP_CONNECTION - keep-alive
REMOTE_PORT - 3142
REDIRECT_STATUS - 200

где-то в Инетах пишут, что вообще не судьба. Это правда?
Сеть с доменами, сайт на обычной юзерской машине (XPsp3) в домене.
...
Рейтинг: 0 / 0
05.11.2014, 06:38
    #38795730
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
Да, это правда.
Почти...

"Домен" это микрософтовское изобретение имеющее смысл только для локальных сетей основанных на netbios. Вот если бы ты работал не с http а с netbios, тогда то самое имя машины зарегистрированное в домене нашлось бы с легкостью. А ты ищешь интернет-имя машины которое имеет смысл для http...

В общем, для того что ты хочешь, надо чтобы твой контроллер домена выполнял еще и функцию DNS и добавлял в свою таблицу имена хостов на основе доменных имен. Тогда получив IP ты мог бы делать gethostbyaddr() и все...
Тряси своего админа...
...
Рейтинг: 0 / 0
05.11.2014, 07:21
    #38795740
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
DEugeneVREMOTE_ADDR - 127.0.0.1

зайди с другого компа и посмотри что там будет
...
Рейтинг: 0 / 0
05.11.2014, 12:11
    #38796016
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
тоже думаю что нетбиос это не проблема. если сервер находиться точно также в корпоративной сети, он может как и любая другая машина получить это самое имя!
...
Рейтинг: 0 / 0
05.11.2014, 12:44
    #38796103
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
DEugeneV,
reverse DNS lookup - долгая операция (особенно если обратная зона вообще не прописана), так что по умолчанию оно в веб сервере отключено. Иначе при каждом заходе на любой сайт возникала бы нехилая пауза пока сервер ищет ваше имя хоста...
...
Рейтинг: 0 / 0
05.11.2014, 14:29
    #38796329
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
BarloneDEugeneV,
reverse DNS lookup - долгая операция (особенно если обратная зона вообще не прописана), так что по умолчанию оно в веб сервере отключено. Иначе при каждом заходе на любой сайт возникала бы нехилая пауза пока сервер ищет ваше имя хоста...

ваще-то dnscache на клиенте по умолчанию включен.

нужно это проверить.

запустить, если вдруг, вот так: net start dnscache

посмотреть что болтается в кэше можно с помощью ipconfig /displaydns

и скорее всего надо просить админа, чтобы стартанул WINS-сервер

и чтобы он убедился, что прописаны записи типа WINS и WINS-R в файле зоны DNS-сервера
Код: coco
1.
2.
3.
4.
5.
@ IN       WINS  10.0.0.1
@ IN       WINS LOCAL L1 C10 10.10.10.1 10.10.10.2 10.10.10.3

@ IN       WINS-R LOCAL L1 C10 example.microsoft.com.
@ IN       WINS-R wins.example.microsoft.com.



ну и после этого уже смотреть что появится в локальном кэше и добавлять в случае успеха gethostbyaddr() в код
...
Рейтинг: 0 / 0
05.11.2014, 16:24
    #38796522
DEugeneV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
ИзопропилDEugeneVREMOTE_ADDR - 127.0.0.1
зайди с другого компа и посмотри что там будет
ip того компа, с которого зашел (например, 192.168.113)

White Owlнадо чтобы твой контроллер домена выполнял еще и функцию DNS и добавлял в свою таблицу имена хостов на основе доменных имен. Тогда получив IP ты мог бы делать gethostbyaddr() и все
Наш DC выполняет функцию DNS, хотя за настройки не поручусь, делали до меня и, есть основания подозревать, кривовато...Например, вот выдержка из ipconfig /all с моего рабочего компа (на нем же и сайт):
Dhcp включен. . . . . . . . . . . : да
Автонастройка включена . . . . . : да
IP-адрес . . . . . . . . . . . . : 192.168.1.111
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.1.222
192.168.1.3
DHCP-сервер . . . . . . . . . . . : 192.168.1.3
DNS-серверы . . . . . . . . . . . : 192.168.1.3
194.158.204.238
82.209.195.12

Непонятно, так нужно, чтобы среди DNS-серверов были какие-то "внешние", или это косяк? я сам не особо в этом разбираюсь, но спросить кроме себя некого - остался савсэм адын, прог и адмын:)

volodin661, чувствую, что тепло:)
dnscache запущена, в кэше много чего болтается (начиная с www.sql.ru...89.188.113.172); попробовал добавить себе в код
use Socket;
...
my $client = gethostbyaddr($ENV{REMOTE_ADDR}, AF_INET);
- при открытии страницы действительно ощущается длинная пауза, но $client - пусто...WINS, похоже, не запущен - где его найти? что-то не наблюдаю, на DC.
...
Рейтинг: 0 / 0
05.11.2014, 17:43
    #38796599
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
DEugeneVНаш DC выполняет функцию DNS, хотя за настройки не поручусьЕсли там есть и отдаются по запросу все необходимые PTR-записи, тогда вполне можно пользоваться. Попробуйте протестить

Код: sql
1.
2.
3.
4.
5.
$ nslookup 192.168.0.247 dc.cit.local.
Server:         dc.cit.local.
Address:        192.168.0.245#53

247.0.168.192.in-addr.arpa      name = lhc.cit.local.

Здесь dc.cit.local - мой контроллер виндового домена с ролью DNS.
...
Рейтинг: 0 / 0
05.11.2014, 19:21
    #38796693
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
DEugeneVWINS, похоже, не запущен - где его найти? что-то не наблюдаю, на DC.



1)
Установка WINS-сервера


2)
Открытие консоли WINS


3)
Для использования интеграции просмотра WINS


и так далее...
...
Рейтинг: 0 / 0
06.11.2014, 20:15
    #38797748
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
Да не парьте людям мозги этим WINS.
Насколько я понимаю, WINS уже запрещен на территории Евросоюза и в современных windows-сетях в частности.
...
Рейтинг: 0 / 0
07.11.2014, 02:41
    #38798033
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
netwindНасколько я понимаю, WINS уже запрещен на территории Евросоюза и в современных windows-сетях в частности.

запрещен только в интернэт-кафэ и вблизи детских площадок, а просто на улице - пожалуйста.
...
Рейтинг: 0 / 0
07.11.2014, 08:14
    #38798116
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер?
WINS просто здесь не нужен

Net::DNS::Resolver с явным указанием доменных контроллеров в качестве dns серверов - этого должно быть достаточно
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl, локальный вебсайт - как узнать DNS-имя компа, с которого зашел юзер? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]