繁体   English   中英

什么是C#中的inet_addr函数等效项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM