Перечислите IP-адрес всех компьютеров, подключенных к единственной LAN

Я пишу программу, где Вы соединяетесь, по различным причинам, к другим компьютерам в LAN. Однако вместо того, чтобы иметь необходимость ввести IP-адрес для нескольких компьютеров (боль в торце), я задавался вопросом, существует ли способ перечислить IP-адреса всех компьютеров в LAN. Я весь день исследовал, и на данный момент ничто не нашел подходящим. Это вызвано тем, что ничто из этого вида не существует?Заранее спасибо.

Править: Казалось бы, что со многими представлениями это сообщение добирается, я должен отправить свое фактическое решение. В целом соглашения о присвоении имен для компьютерных IP-адресов на LAN являются тем же. причем пример 192.168.2.*, * заменяемый любым верным номером. Моя программа обнаруживает IP-адрес, отображает его пользователю, затем просит первые 3 блока IP. Это затем последовательно сканирует до 200 в данном соглашении о присвоении имен IP путем проверки с помощью ping-запросов и ожидания ответа. Никакой ответ, никакой компьютер. Это может сделать все, что можно сделать с IP, после того как это знает, что имеет компьютер позади него.

9
задан Bloodyaugust 28 January 2010 в 00:34
поделиться

5 ответов

Вы не найдете ничего более надежного, чем pinging или arpinging адреса в одном подмножестве. Я реализовал это для определенного программного обеспечения еще во времена моей первой стажировки, и в последний раз, когда я проверял (если честно, это было несколько лет назад), они все еще использовали эту функциональность. Я так понимаю, что они не нашли ничего лучше.

Нетрудно найти исходные тексты для них и перевести их на C#. ping, arping. В качестве альтернативы, вы просто запускаете командную строку и выполняете ping, а затем разбираете результаты.

.
6
ответ дан 4 December 2019 в 12:18
поделиться

1) Считайте маску подсети и вычислите все IP-адреса в маске подсети, в которой вы находитесь. Затем вы можете либо использовать ICMP ping (стандартный ping), либо ARP ping, чтобы перечислить все действительные IP-адреса. ARP ping очень надежен в настройках подсети.

2) Вы можете nmap перечислить все хосты

nmap -nsP 192.168.10.1/254 | grep ^Host
7
ответ дан 4 December 2019 в 12:18
поделиться

Любой инструмент для обнаружения хоста может помочь вам здесь. В частности Nmap, безусловно, предоставит Вам эту информацию, хотя в этой ситуации она может быть чрезмерной. Google для "ping scan", и вы должны получить некоторые полезные результаты.

.
2
ответ дан 4 December 2019 в 12:18
поделиться

См. WNetOpenEnum() и WNetEnumResource(), здесь.

.
2
ответ дан 4 December 2019 в 12:18
поделиться

Можете ли вы просто посмотреть на IP и маску подсети в сетевом адаптере и пинговать каждый адрес? Какой из ответов можно запросить, чтобы узнать, есть ли у него все, что нужно для подключения

.
0
ответ дан 4 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: