将IP地址转换为int,(即c#中的inet aton)

发布于 2024-10-11 08:30:50 字数 376 浏览 6 评论 0原文

可能的重复:
INET_NTOA 和 INET_ATON 的 .NET 等效项
如何将 IPv4 地址转换为整数C#?

如何在 C# 中执行相同的 unix 函数 inet_aton?

Possible Duplicates:
.NET Equivalant for INET_NTOA and INET_ATON
How to convert an IPv4 address into a integer in C#?

How do I perform the same unix function inet_aton in c#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

︶葆Ⅱㄣ 2024-10-18 08:30:50

查看 IPAddress.Parse (或 TryParse ) IPAddress 类的方法。

一个例子是:

static int IPStringToInt(string ipAddress)
{
    IPAddress address = IPAddress.Parse(ipAddress);
    byte[] asBytes = address.GetAddressBytes();

    if(asBytes.Length != 4)
    {
        throw new ArgumentException("IP Address must be an IPv4 address");
    }

    return BitConverter.ToInt32(asBytes, 0);
}

您需要考虑字节的主机和网络顺序,但 IPAddress 类上有几个静态方法可以处理这个问题。

Check out the IPAddress.Parse (or TryParse) methods of the IPAddress class.

An example would be:

static int IPStringToInt(string ipAddress)
{
    IPAddress address = IPAddress.Parse(ipAddress);
    byte[] asBytes = address.GetAddressBytes();

    if(asBytes.Length != 4)
    {
        throw new ArgumentException("IP Address must be an IPv4 address");
    }

    return BitConverter.ToInt32(asBytes, 0);
}

You will need to take into account the host and network order of the bytes, but there's several static methods on the IPAddress class for handling that.

樱花落人离去 2024-10-18 08:30:50
public int ToInteger(int A, int B, int C, int D)
{
    return Convert.ToInt32((A* Math.Pow(256, 3)) + (B* Math.Pow(256, 2)) + (C* 256) + D);
}

http://msdn.microsoft.com/en- us/library/system.net.ipaddress.parse.aspx

你可以像我一样扩展你自己的IP类。

public int ToInteger(int A, int B, int C, int D)
{
    return Convert.ToInt32((A* Math.Pow(256, 3)) + (B* Math.Pow(256, 2)) + (C* 256) + D);
}

or http://msdn.microsoft.com/en-us/library/system.net.ipaddress.parse.aspx

you can extend your own IP class like I did.

小帐篷 2024-10-18 08:30:50

试试这个我认为是同样的问题,它有答案(享受)

Try this i think is the same question and it has an answer (enjoy)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文