You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中十六进制转IPv4地址的实现逻辑咨询

C# 中十六进制字符串转IPv4地址的实现

需求说明

需要将8位十六进制字符串转换为标准IPv4地址,对应示例:

  • 6F6F6F6F → 111.111.111.111
  • FFFFFFFF → 255.255.255.255

实现逻辑

IPv4地址本质是4个字节组成的32位整数,转换核心是把8位十六进制字符串解析为对应字节数组,再通过IPAddress类构造出目标地址,步骤如下:

  1. 校验输入:确保十六进制字符串长度为8,且仅包含合法十六进制字符(0-9、A-F、a-f)
  2. 拆分转换:每两位十六进制字符对应一个字节,按顺序生成4字节数组
  3. 构造地址:用生成的字节数组实例化IPAddress对象,得到标准IPv4地址

代码实现

using System;
using System.Net;

public static class HexToIpConverter
{
    public static IPAddress ConvertHexStringToIpv4(string hexString)
    {
        // 验证输入长度合法性
        if (hexString.Length != 8)
            throw new ArgumentException("十六进制字符串必须为8位长度", nameof(hexString));
        
        byte[] ipBytes = new byte[4];
        // 逐段将十六进制转为字节
        for (int i = 0; i < 4; i++)
        {
            string segmentHex = hexString.Substring(i * 2, 2);
            if (!byte.TryParse(segmentHex, System.Globalization.NumberStyles.HexNumber, null, out ipBytes[i]))
                throw new FormatException("输入包含非法十六进制字符");
        }
        
        return new IPAddress(ipBytes);
    }

    // 测试示例
    public static void Main()
    {
        string hex1 = "6F6F6F6F";
        IPAddress ip1 = ConvertHexStringToIpv4(hex1);
        Console.WriteLine($"{hex1} → {ip1}"); // 输出:6F6F6F6F → 111.111.111.111

        string hex2 = "FFFFFFFF";
        IPAddress ip2 = ConvertHexStringToIpv4(hex2);
        Console.WriteLine($"{hex2} → {ip2}"); // 输出:FFFFFFFF → 255.255.255.255
    }
}

补充说明

  • 如果输入带0x前缀,需先通过hexString = hexString.TrimStart('0', 'x')去除前缀再转换
  • IPAddress构造函数会自动按字节数组顺序解析为IPv4地址段,无需额外调整字节序
  • 代码包含基础异常处理,可根据业务场景调整错误捕获逻辑

内容的提问来源于stack exchange,提问作者satya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:12:39