Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将十六进制转换为ip_C#_Visual Studio_Hex_Ip - Fatal编程技术网

C#将十六进制转换为ip

C#将十六进制转换为ip,c#,visual-studio,hex,ip,C#,Visual Studio,Hex,Ip,我有4a0e94ca等格式的十六进制值,我需要将它们转换为IP,如何在C#?中实现这一点,采用以下形式的IP格式: 192.168.1.1 要将其转换为一个数字,您可以将每个部分或其组合在一起,同时将其向左移动8位 long l = 192 | (168 << 8) | (1 << 16) | (1 << 24); --编辑 其他海报可能在C#中有“更干净”的方式,所以可能在生产代码中使用,但我确实认为我发布的方式是学习IP格式的好方法。检查 如果这些值表

我有4a0e94ca等格式的十六进制值,我需要将它们转换为IP,如何在C#?

中实现这一点,采用以下形式的IP格式:

192.168.1.1
要将其转换为一个数字,您可以将每个部分或其组合在一起,同时将其向左移动8位

long l = 192 | (168 << 8) | (1 << 16) | (1 << 24);
--编辑

其他海报可能在C#中有“更干净”的方式,所以可能在生产代码中使用,但我确实认为我发布的方式是学习IP格式的好方法。

检查


如果这些值表示IPv4地址,则可以使用该方法并将结果传递给:


如果它们代表IPv6地址,那么您应该使用它们来构造IPAddress。

Dup-对不起,狙击手,我看到您是新来的。请在发布副本之前搜索问题。你要寻找的答案的链接在上面,它是否重复取决于你如何定义一个IP,以及输出是什么(我假设它将被转换成一个字符串)。我忽略了这一点,但我确实觉得答案会非常相似。我同意,但同时silky发布的逐位数学组件有助于sniperX了解幕后发生的事情(这在其他问题中是无法理解的)。这只是我的意见!这是一个相当不错的方式,但可能不是最快的。尽管如此,+1.似乎是最好的meNote方法-“var”只能在.Net framework 3.5或更高版本中工作。我认为应该注意的是,这只能在big-endian系统上执行。+1-我相信了解按位数学可能是将整数转换为IP(反之亦然)的最重要部分,即使你的语言能为你做到这一点。@Matthew:虽然我同意知道按位计算是有用的,但大多数C派生的语言都有函数inet\u ntop和inet\u pton,正是为了这个目的。@R.Bemrose:当然,但我认为知道这些函数是如何工作的很好。尽管每个人都有自己的想法,但有些人对下层发生的事情并不像我那么兴奋:)
int b1 = (int) (l & 0xff);
int b2 = (int) ((l >> 8) & 0xff);
int b3 = (int) ((l >> 16) & 0xff);
int b4 = (int) ((l >> 24) & 0xff);
    var ip = String.Format("{0}.{1}.{2}.{3}",
    int.Parse(hexValue.Substring(0, 2), System.Globalization.NumberStyles.HexNumber),
    int.Parse(hexValue.Substring(2, 2), System.Globalization.NumberStyles.HexNumber),
    int.Parse(hexValue.Substring(4, 2), System.Globalization.NumberStyles.HexNumber),
    int.Parse(hexValue.Substring(6, 2), System.Globalization.NumberStyles.HexNumber));
var ip = new IPAddress(long.Parse("4a0e94ca", NumberStyles.AllowHexSpecifier));