我需要知道如何使用像inet_addr(“192.168.0.2”)这样的IP地址;在C ++中 返回DWORD的位置。我在C#中的包装器将此字段视为Int?
任何人都可以帮助解决这个误区吗?
答案 0 :(得分:4)
您应该使用IPAddress类。它会麻烦你,因为它试图阻止你依赖IP4地址。地址成员被声明为过时。这是解决方法:
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
请注意,地址的网络顺序正确(大端)。
答案 1 :(得分:0)
好吧,如果它.net我假设它是一个小端机器,所以你“可以”按如下方式做到:
address = (192 << 0) | (168 << 8) | (0 << 16) | (2 << 24);
我很确定这是正确的方式:)