Как лучше всего проверить, что URL находится в общедоступном Интернете? - PullRequest
4 голосов
/ 21 февраля 2009

Я хочу проверить, что имя хоста / IP-адрес находятся в общедоступном Интернете; то есть, насколько это разумно, я получал бы один и тот же ответ от него независимо от того, откуда я к нему обращаюсь (очевидно, это невозможно гарантировать.

т.е. я хочу исключить localhost, 127.0.0.1, все, что находится в диапазонах частных IP-адресов, и все, что имеет недопустимый TLD.

Мне не хватает чего-то еще, что я должен проверять?

И есть ли лучший список, чем http://data.iana.org/TLD/tlds-alpha-by-domain.txt, для списка действительных TLD?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2009

Действительный TLD может по-прежнему разрешаться на локальный адрес, если вы не имеете строгого контроля над DNS или / etc / hosts, поэтому разрешите и затем исключите по диапазону IP (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16, 127.0.0.0/8) лучше всего.

Ваш список TLD обновлен.

1 голос
/ 21 февраля 2009

IANA является официальным источником информации о доменных именах, поэтому вы не можете получить лучший список - или, по крайней мере, вы не можете получить более авторитетный.

0 голосов
/ 21 февраля 2009

Не будет ли окончательной проверкой создание списка локальных для вас сетей (например, за вашим собственным брандмауэром) и, если это не так, попытка подключить хост? Если вы можете подключиться, и это не локально, у вас не будет никаких оснований ожидать, что ни одно другое место в Интернете не сможет подключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...