19

のようなものを保存/検証するクラスをコード化するのは簡単です192.168.0.0/16が、これのネイティブ型が.NETに既に存在するかどうか興味がありましたか? 私はそれが次のようにうまくいくと思いIPAddressます:

CIDR subnet = CIDR.Parse("192.168.0.0/16");

基本的には、IPv4 または IPv6 アドレスで作業していることを確認し、指定したビット数がそのタイプに対して有効であることを確認する必要があります。

4

3 に答える 3

30

GitHubのコードを使用して、次のことを実行できます。

https://github.com/lduchosal/ipnetwork

IPNetwork ipnetwork = IPNetwork.Parse("192.168.168.100/24");

Console.WriteLine("Network : {0}", ipnetwork.Network);
Console.WriteLine("Netmask : {0}", ipnetwork.Netmask);
Console.WriteLine("Broadcast : {0}", ipnetwork.Broadcast);
Console.WriteLine("FirstUsable : {0}", ipnetwork.FirstUsable);
Console.WriteLine("LastUsable : {0}", ipnetwork.LastUsable);
Console.WriteLine("Usable : {0}", ipnetwork.Usable);
Console.WriteLine("Cidr : {0}", ipnetwork.Cidr);

出力

Network : 192.168.168.0
Netmask : 255.255.255.0
Broadcast : 192.168.168.255
FirstUsable : 192.168.168.1
LastUsable : 192.168.168.254
Usable : 254
Cidr : 24
于 2010-02-10T19:57:04.257 に答える
4

いいえ、.NET にはそのようなネイティブ タイプはありません。独自に開発する必要があります。

于 2008-11-22T14:45:43.463 に答える
4

ASP.NET Core には、IPNetworkクラスが追加されました。以下の使用例:

var addr = IPAddress.Parse("192.168.0.0");
var mask = 16;
var test = new IPNetwork(addr, mask).Contains(context.Connection.RemoteIpAddress);
于 2020-07-29T19:55:34.497 に答える