Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > IP Test


Автор: RapMan 30.6.2009, 17:27
Всем привет, вопрос следующий:
Как узнать или я к реальному сайту обращаюсь? то есть например можно записать в hosts:
127.0.0.1 google.com
и уже к гуглу я не обращусь, а как программно можно узнать IP реальной?

Заранее спасибо

Автор: Олег2005 30.6.2009, 18:58
Цитата(RapMan @  30.6.2009,  16:27 Найти цитируемый пост)
как программно можно узнать IP реальной?

Для этого есть функция gethostbyname(), которая по доменному имени возвращает его IP

Автор: RapMan 30.6.2009, 19:53
знаю ее, а ты попробуй добавить в :
windows\system32\driver\etc\hosts
запись типа етого:
127.0.0.1 google.com

и потом сделать gethostbyname( "google.com" ) и посмотреть какую IP тебе вернут...

Автор: Олег2005 30.6.2009, 21:27
Вы не открыли Америку.
Этот прием типа 
127.0.0.1 google.com
используют очень многие - есть файлы hosts по 600К
http://www.mvps.org/winhelp2002/hosts.htm

Так а в чем проблема то?
Сами написали себе в hosts - сами и расхлебывайте smile 

Автор: RapMan 30.6.2009, 21:36
hosts не я пишу, мне нужно проверить или google.com имеет правильной IP-адресс. чтобы не обращаться к поддельному сайту. Вот это меня и интересует.

Автор: Artemon 1.7.2009, 09:07
Так вы с начала проверяйте этот файл windows\system32\driver\etc\hosts
на наличие в нем нужного сайта

Автор: RapMan 1.7.2009, 12:40
думал насчет этого, но надеялся что есть другой способ.

Автор: Олег2005 1.7.2009, 14:44
Если нужна проверка, делают так:
сначала gethostbyname, получают IP
Потом этот IP засовывают в gethostbyaddr() - и должны получить домен гугля или еще чего..... 

Автор: RapMan 1.7.2009, 18:47
неа, не работает такой способ... тоесть если записать в hosts:
127.0.0.1 google.com

и потом сделать gethostbyname ( "google.com" ) и потом взять IP с полученных данных и засунуть в gethostbyaddr - то получиться одно и тоже, я получу google.com (даже если вручную вбить адрес 127.0.0.1 - результат тот же)

етот вариант не работает

Автор: Олег2005 1.7.2009, 18:57
Я вас - просто не понимаю.
Вы пишите - в собственном компе - потому как первым делом gethostbyname лезет  в hosts - заглушку на лупбэк - а потом хотите узнать истинный адрес......
Нет, НЕ ПОНИМАЮ.
Уберите 127....из hosts  и будет вам счастье.......

Автор: RapMan 1.7.2009, 19:46
а если другая, не хорошая программа, добавила в хостс запись, вот я и хочу проверить... что тут еще понимать?
мне как бы нужно сделать запрос к главному dns серверу чтобы получить то, что нужно

Автор: jonie 1.7.2009, 19:55
"главному DNS ?!" это что за такой DNS? Ну сделайте запрос, в чем проблема? Сделайте например DNS запрос (свою библиотеку реализуйте на сокетах голых), хотя и это вам не особо поможет, подделать адрес можно всегда, для удостоверения что это именно тот хост есть сертификаты и принципы безопасной аутентификации...

Автор: RapMan 1.7.2009, 20:42
jonie, если я не ошибаюсь их есть 13 или 16, етих "главных" DNS серверов...
Ладно, понял что толку от етого - мало, все спасибо за помочь!

Автор: MAKCim 1.7.2009, 22:32
не "главные", а корневые

Добавлено через 30 секунд
решение вашей "задачи" - собственная реализация DNS

Автор: RapMan 1.7.2009, 22:43
Спасибо, ошибся  smile 
Ладно, буду думать другими методами  smile 

Автор: jonie 2.7.2009, 11:42
MAKCim я бы назвал реализацию DNS своими силами не решением, а затычкой.... я могу настроить свой DNS сервер так, как захочу я и т.п... в общем не метод аутентификации, в отличие от сертификатов например

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)