首页 > 后端开发 > C++ > 如何在 C# 中将 IPv4 地址转换为整数,反之亦然?

如何在 C# 中将 IPv4 地址转换为整数,反之亦然?

Susan Sarandon
发布: 2025-01-08 13:42:41
原创
705 人浏览过

How to Convert IPv4 Addresses to Integers and Vice Versa in C#?

C# 中 IPv4 地址与整数的相互转换

在处理 IPv4 地址时,经常需要将其转换为整数或反之。C# 提供了几种方法来执行这些转换。

要将 IPv4 地址转换为整数,可以使用 IPAddress 类的 Address 属性,该属性返回一个表示 IPv4 地址的 32 位无符号整数。但是,此属性以网络字节序返回地址,因此需要交换字节才能获得主机字节序。

例如,要将 IP 地址“64.233.187.99”转换为整数:

<code class="language-csharp">long address = (long)(uint)IPAddress.NetworkToHostOrder(
    (int)IPAddress.Parse("64.233.187.99").Address);</code>
登录后复制

要将整数转换回 IPv4 地址,可以使用 IPAddress 类的构造函数:

<code class="language-csharp">string ipAddress = new IPAddress((uint)IPAddress.HostToNetworkOrder(
    (int)address)).ToString();</code>
登录后复制

这是一个完整的示例程序,演示了这两种转换:

<code class="language-csharp">using System;
using System.Net;

public class Program
{
    public static long ToInt(string addr)
    {
        return (long)(uint)IPAddress.NetworkToHostOrder(
             (int)IPAddress.Parse(addr).Address);
    }

    public static string ToAddr(long address)
    {
        return new IPAddress((uint)IPAddress.HostToNetworkOrder(
            (int)address)).ToString();
    }

    public static void Main(string[] args)
    {
        Console.WriteLine(ToInt("64.233.187.99"));
        Console.WriteLine(ToAddr(1089059683));
    }
}</code>
登录后复制

以上是如何在 C# 中将 IPv4 地址转换为整数,反之亦然?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板