[英]What is the inet_addr function equivalent in C#
我需要知道如何使用inet_addr(“ 192.168.0.2”)这样的IP地址; 在C ++中,它返回DWORD。 我在C#中的包装程序将此字段视为Int?
任何人都可以帮助解决这种误解吗?
您应该使用IPAddress类。 这会给您带来麻烦,因为它试图阻止您依赖IP4地址。 Address成员被声明作废。 解决方法如下:
using System;
using System.Net;
class Program {
static void Main(string[] args) {
var addr = IPAddress.Parse("192.168.0.2");
int ip4 = BitConverter.ToInt32((addr.GetAddressBytes()), 0);
Console.WriteLine("{0:X8}", ip4);
Console.ReadLine();
}
}
输出:0200A8C0
请注意,该地址采用正确的网络顺序(大端)。
好吧,如果它是.net,那么我假设它是一台小的endian机器,因此您可以“如下”进行操作:
address = (192 << 0) | (168 << 8) | (0 << 16) | (2 << 24);
我很确定那是正确的方法:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.