vish_pro Ответов: 1

Как сравнить два IP-адреса в#


Всем привет,

У меня есть два ips один 10.128.25.36 и еще один такой 10.128.ХХ.ХХ ,теперь я хочу сравнить эти два, заменить xx значения со второго ip, сравнить только целочисленные значения.

может ли кто-нибудь сказать мне, как это сделать?..?

спасибо!..!

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

HI All,

I have two ips one 10.128.25.36 and another one is 10.128.xx.xx ,now I want to compare these two, replace the xx values from second ip,compare only integer values.

can any one tell me how to do this..??

thanks..!!

1 Ответов

Рейтинг:
1

OriginalGriff

Это сложно, потому что IP-адреса не так просты, как вы, возможно, думали.
Форма, которую вы показываете, называется IPV4 и состоит из четырех 8-битных значений, разделенных точками. Но ... во-первых, эти 8-битные значения могут быть представлены в десятичном виде, как вы показываете, или в шестнадцатеричном: 0x0A.0x80.0x19.0x24 без каких-либо отличий. Таким образом, ваш код должен учитывать это или любую смесь оснований.
Во-вторых, IPV4-это не единственный формат, который вы можете встретить: есть также IPV6, который очень отличается.

::1                   is the IP address for Localhost
2001:4860:4860::8888  is the Google DNS IPV6 address


Хорошей новостью является то, что класс IPAddress имеет метод синтаксического анализа, который будет работать с любым допустимым форматом IP-адреса.
Плохая новость заключается в том, что "10.128.xx.xx" - это не действительный IP-адрес, а формат маски. Это означает, что он не может быть автоматически проанализирован, и вам придется обрабатывать их самостоятельно!
Если вы сталкиваетесь только с IPv4, то используйте Split для разделения числовых значений, проверьте их на наличие маски, а если нет, преобразуйте в целое число.
После этого от вас зависит, что именно должно дать сравнение, особенно со значениями маски