Я знаю, что могу пропинговать имя сервера и определить IP-адрес. Но есть ли команды, которые я могу использовать для определения подсети? Я использую Windows XP.
Нет. Подсети вообще сложно / невозможно определить издалека - зачем вам это нужно?
Строго говоря, вы также не определяете IP-адрес сервера с помощью ping - ping просто использует обычный преобразователь для определения IP-адреса и распечатывает его, прежде чем приступить к выполнению своей основной задачи, проверяя, работает ли хост, отправляя сообщение эхо-запроса ICMP и ожидающие сообщения эхо-ответа ICMP.
Инструмент, который на самом деле создан для поиска сопоставлений имен из DNS, - это host или, в более поздней версии, dig, из клиентских инструментов сервера BIND DNS. Dig - это фантастически полезный инструмент, и каждый системный администратор должен уметь его использовать.
Дополнительная информация: вы можете узнать, кому принадлежит блок IP, которому принадлежит адрес, и насколько он большой, используя whois на IP-адресе, как и в домене.
Напишите сценарий для psexec ipconfig на удаленном сервере и проанализируйте вывод на предмет маски подсети.
Методом проб и ошибок вы можете использовать команду "tracert" из командной строки для проверки связи с соседними IP-адресами, чтобы увидеть, где заканчивается маршрут. То есть при условии, что нет брандмауэра, блокирующего запросы ICMP.
tracert 10.0.0.1
tracert 10.0.0.2
tracert 10.0.0.4
tracert 10.0.0.8
etc.
tracert 10.0.1.1
Если предпоследний IP-адрес остается прежним, вы находитесь в подсети. Конечно, с NAT и тем фактом, что многие хосты блокируют эти запросы, вам, вероятно, не повезло.
Теоретически для вас должен работать запрос ICMP (ping) типа «17», но я не знаю, насколько широко это поддерживается.
http://www.rhyshaden.com/icmp.htm
http://www.ietf.org/rfc/rfc792.txt
ICMP Address Mask Ping (-PM)
http://www.networkuptime.com/nmap/page4-8.shtml