Сетевой интерфейс - VB.Net/Java - PullRequest
0 голосов
/ 29 января 2011

У меня есть этот фрагмент на Java:

final InetAddress address = InetAddress.getLocalHost();
final NetworkInterface ni = NetworkInterface.getByInetAddress(address);
key = new String(ni.getHardwareAddress());

«ключ», на моем ПК возвращается:

▲ ╔UiÎ

Что будет эквивалентно получению того же результата в VB.Net? Я пытался получить «MAC-адрес» и «Физический адрес», но они вообще не сравниваются с выводом в Java?

1 Ответ

1 голос
/ 29 января 2011

Я не могу помочь вам с VB, но, возможно, я могу кое-что прояснить.

По моему опыту, InetAddress.getLocalHost() бесполезен.Он дает разные результаты в зависимости от ОС, версии Java, марки маршрутизатора, к которому вы подключаетесь, фазы луны и т. Д. Держитесь подальше от него.Если вам нужен петлевой IP-адрес, просто закодируйте его: 127.0.0.1.Если вам нужны адреса сетевых интерфейсов на вашем компьютере, позвоните по номеру NetworkInterface.getInterfaces() и повторите их.

MAC-адрес является уникальным идентификатором интерфейса Ethernet.Обычно вам вообще не нужно об этом беспокоиться, если только вы не делаете что-то странное с сетевым оборудованием.Это не имеет ничего общего с IP-адресами.

Наконец: если вы хотите определить IP-адрес, который другие могут использовать для подключения к вам, просто знайте, что это не так просто.У компьютера может быть несколько сетевых интерфейсов - как узнать, какой выбрать?А если вы находитесь за маршрутизатором (как большинство машин в наши дни), то компьютеру назначается «локальный» адрес, который совершенно бесполезен для всех, кто находится за пределами локальной сети.

...