Конвертировать Mac-адрес и IP-адрес в байтовый массив определенного размера - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь преобразовать MAC-адрес в байтовый массив размером 5 и IP-адрес в размер 4. Теперь я знаю, как получить значения с помощью этого кода:

'This returns a byte array of size 16
Dim ipArray As Byte() = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(Function(a As IPAddress) Not a.IsIPv6LinkLocal AndAlso Not a.IsIPv6Multicast AndAlso Not a.IsIPv6SiteLocal).First().GetAddressBytes

'This returns a byte array of size 6
Dim macArray As Byte() = NetworkInterface.GetAllNetworkInterfaces(0).GetPhysicalAddress.GetAddressBytes

Это не дает мне желаемого результата и не может найти хорошее решение для работы. Для IP я создал обходной путь, который я считаю грязным:

Dim ip As String = "192.168.0.10"
Dim _ip() As String = ip.Split(CChar("."))
Object.IpAddress = New Byte() {Byte.Parse(_ip(0)), Byte.Parse(_ip(1)), Byte.Parse(_ip(2)), Byte.Parse(_ip(3))}

1 Ответ

1 голос
/ 16 мая 2019

Попробуйте:

Dim ipArray As Byte() = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(Function(a As IPAddress) a.AddressFamily =2).First().GetAddressBytes
...