什么是C#中的inet_addr函数等价物

时间:2010-05-17 16:23:44

标签: c++ c#-3.0 types wrapper

我需要知道如何使用像inet_addr(“192.168.0.2”)这样的IP地址;在C ++中 返回DWORD的位置。我在C#中的包装器将此字段视为Int?

任何人都可以帮助解决这个误区吗?

2 个答案:

答案 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);

我很确定这是正确的方式:)