Как Вы анализируете строку IP-адреса к значению uint в C#?

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

HTML:




JQuery:

function witness(){
    $("#fruit2 option").each(function(){
        if($("#fruit1 option:selected").val() == $(this).val())
            $(this).attr("disabled", "disabled");
        else
            $(this).removeAttr("disabled");
    });
}

Здесь вы можете увидеть рабочий пример: https : //jsfiddle.net/mqjxL4n0/

6
задан Groo 28 June 2016 в 14:56
поделиться

6 ответов

MSDN заявляет это IPAddress. Свойство адреса (который возвращает числовое представление IP-адреса) является устаревшим, и необходимо использовать метод GetAddressBytes.

Можно преобразовать IP-адрес в числовое значение использующий следующий код:

var ipAddress = IPAddress.Parse("some.ip.address");
var ipBytes = ipAddress.GetAddressBytes();
var ip = (uint)ipBytes [3] << 24;
ip += (uint)ipBytes [2] << 16;
ip += (uint)ipBytes [1] <<8;
ip += (uint)ipBytes [0];

Править:
Поскольку другие комментаторы заметили, что вышеупомянутый код для адресов IPv4 только. Адрес IPv6 128 битов длиной, таким образом, невозможно преобразовать его в 'uint', как автор вопроса хотел.

12
ответ дан 8 December 2019 в 02:08
поделиться

Арифметике байта препятствуют, поскольку она полагается на всего дюйм/с, являющегося с 4 октетами.

1
ответ дан 8 December 2019 в 02:08
поделиться

Я никогда не находил чистое решение (т.е.: класс / метод в Платформе.NET) для этой проблемы. Я предполагаю, что это просто не доступно кроме решений / примеры, которые Вы обеспечили или пример Aku.:(

0
ответ дан 8 December 2019 в 02:08
поделиться

Не был должен это быть:

var ipAddress = IPAddress.Parse("some.ip.address");
var ipBytes = ipAddress.GetAddressBytes();
var ip = (uint)ipBytes [0] << 24;
ip += (uint)ipBytes [1] << 16;
ip += (uint)ipBytes [2] <<8;
ip += (uint)ipBytes [3];

?

17
ответ дан 8 December 2019 в 02:08
поделиться
var ipuint32 = BitConverter.ToUInt32(IPAddress.Parse("some.ip.address.ipv4").GetAddressBytes(), 0);`

Это решение легче считать, чем ручное разрядное смещение.

Посмотрите, Как преобразовать адрес IPv4 в целое число в C#?

10
ответ дан 8 December 2019 в 02:08
поделиться

Также необходимо помнить, что IPv4 и IPv6 являются различными длинами.

5
ответ дан 8 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: