используя IP-адрес компонента C # - PullRequest
1 голос
/ 14 августа 2010

Я пытаюсь использовать компонент, который называется A C # IP Address Control, но у него есть проблема, я думаю. потому что, когда я увеличиваю его значение 1, это дает мне неправильный результат. Forexample

ipAddressControl3.Text = "192.168.1.25";
IPAddress ipAddress1 = new IPAddress(ipAddressControl3.GetAddressBytes());
ipAddress1.Address++;
MessageBox.Show(ipAddress1.ToString());

возвращает: «193.168.1.25»! но я ожидаю "192.168.1.26"

в чем проблема?

вот ссылка для компонентов: Управление C C IP-адресами

edit: Возможно, решение вроде this , но я не смог его реализовать ..

Ответы [ 3 ]

2 голосов
/ 15 августа 2010

Я конвертирую свой IP-адрес с прямым порядком байтов в такой:

int ipaddress= IPAddress.NetworkToHostOrder(BitConverter.ToInt32(IPAddress.Parse(ipAddressControl3.Text).GetAddressBytes(), 0));

и это работает.

1 голос
/ 14 августа 2010

Попробуйте это:

ipAddressControl3.Text = "192.168.1.25";

byte[] ip = ipAddressControl3.GetAddressBytes();
ip[3] = (byte) (++ip[3]);

IPAddress ipAddress1 = new IPAddress(ip);
MessageBox.Show(ipAddress1.ToString());
1 голос
/ 14 августа 2010

IP-адреса хранятся в сетевом байтовом порядке (с прямым порядком байтов), тогда как целые числа на платформах Intel имеют младший порядок байтов.

...