noob_noob Ответов: 1

Как я могу получить компьютерные адреса с помощью VB.NET-что?


Привет! Я хочу спросить, как я могу получить ip-адреса компьютеров, которые будут использовать мою систему очередей каждый раз, когда они нажимают кнопку "Далее". Синтезатор речи должен сказать: "теперь обслуживающий номер #ticket_number#, пожалуйста, перейдите к счетчику #computer's_name#". Ниже приведена куча кода, который я получил из интернета. Есть ли какой-нибудь возможный способ изменить этот код, чтобы он работал так, как я хочу? Спасибо за помощь!

Что я уже пробовал:

Dim strHostName As String

Dim strIPAddress As String



strHostName = System.Net.Dns.GetHostName()

strIPAddress = System.Net.Dns.GetHostByName(strHostName).AddressList(0).ToString()


MessageBox.Show("Host Name: " & strHostName & "; IP Address: " & strIPAddress)

1 Ответов

Рейтинг:
0

OriginalGriff

GetHostName возвращает имя компьютера, на котором выполняется код, и список адресов, который вы получаете от него, также будет для того же компьютера - это означает, что IP-адрес, который вы получаете, всегда будет локальным IP-адресом локальной сети, который, вероятно, будет 192.168.x.x, потому что большинство сегментов локальной сети по умолчанию используют этот параметр. Вы не можете получить IP - адрес интернета напрямую, потому что это адреса точки контакта ваших пользователей с интернетом - обычно маршрутизатора-и не назначены отдельному компьютеру.
Вы можете получить IP-адрес Интернета, который использует компьютер - Использование геолокации на основе IP - адресов-и почему это в значительной степени бесполезно.[^] показывает код - bvut bear in miond, что он не является уникальным для конкретного компьютера, но является общим для всех компьютеров, использующих этот маршрутизатор.

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


noob_noob

Но как я могу получить IP-адреса другого компьютера в той же сети, что и мой?

Afzaal Ahmad Zeeshan

Попробуйте пропинговать их все и посмотреть, кто ответит.

OriginalGriff

Это немного "грубой силы и невежества" - есть потенциально 255*255 адресов, которые вы могли бы пинговать! :смеяться:

OriginalGriff

Это не так уж и плохо:
https://www.codeproject.com/Tips/358946/Retrieving-IP-and-MAC-addresses-for-a-LAN

noob_noob

Может ли GetHostName получить другие IP - адреса в той же сети?

OriginalGriff

Прочтите документацию, она очень понятна:
https://msdn.microsoft.com/en-us/library/system.net.dns.gethostname(v=против 110).aspx
"значение
система типов.Строка
Строка, содержащая DNS-имя хоста локального компьютера."