博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IPAddress
阅读量:7027 次
发布时间:2019-06-28

本文共 3246 字,大约阅读时间需要 10 分钟。

 

Console.WriteLine("BitConverter.IsLittleEndian = {0}", BitConverter.IsLittleEndian);                Console.WriteLine();                string format = "ipAddress.Address = {0}, 十六进制 = 0x{1}";                string ip = "192.168.1.224";                Console.WriteLine("字符串:" + ip);                IPAddress ipAddress = IPAddress.Parse(ip);                Console.WriteLine(format, ipAddress.Address, ipAddress.Address.ToString("x2"));                Console.WriteLine(ipAddress.ToString());                var array = ipAddress.GetAddressBytes();                int index = -1;                foreach (byte b in array)                {                    index++;                    Console.WriteLine("array[{0}] = 0x{1}", index, b.ToString("x2"));                }                Console.WriteLine();                uint number = 3232236000;                Console.WriteLine("无符号整数:" + number + "  0x" + number.ToString("x2"));                ipAddress = IPAddress.Parse(number.ToString());                 Console.WriteLine(format, ipAddress.Address, ipAddress.Address.ToString("x2"));                Console.WriteLine(ipAddress.ToString());                array = ipAddress.GetAddressBytes();                index = -1;                foreach (byte b in array)                {                    index++;                    Console.WriteLine("array[{0}] = 0x{1}", index, b.ToString("x2"));                }                Console.WriteLine();                number = 3758205120;                Console.WriteLine("无符号整数:" + number + "  0x" + number.ToString("x2"));                ipAddress = IPAddress.Parse(number.ToString());                Console.WriteLine(format, ipAddress.Address, ipAddress.Address.ToString("x2"));                Console.WriteLine(ipAddress.ToString());                array = ipAddress.GetAddressBytes();                index = -1;                foreach (byte b in array)                {                    index++;                    Console.WriteLine("array[{0}] = 0x{1}", index, b.ToString("x2"));                }                Console.WriteLine();

输出结果:

机器字节序为小端

BitConverter.IsLittleEndian = True

 

字符串:192.168.1.224

ipAddress.Address = 3758205120, 十六进制 = 0xe001a8c0
192.168.1.224
array[0] = 0xc0
array[1] = 0xa8
array[2] = 0x01
array[3] = 0xe0

 

无符号整数:3232236000 0xc0a801e0

ipAddress.Address = 3758205120, 十六进制 = 0xe001a8c0
192.168.1.224
array[0] = 0xc0
array[1] = 0xa8
array[2] = 0x01
array[3] = 0xe0

 

无符号整数:3758205120 0xe001a8c0

ipAddress.Address = 3232236000, 十六进制 = 0xc0a801e0
224.1.168.192
array[0] = 0xe0
array[1] = 0x01
array[2] = 0xa8
array[3] = 0xc0

 

分析:将一个无符号的数字3232236000进行ip地址的解析,3232236000在本机上是按照小端进行排列的。0xc0a801e0

ip地址解析之后,直接按照网络字节序(大端)进行了转换,所以在打印ipAddress.Address会发现数字被反转了。0xe001a8c0

 

 

IPAddress.ToString()得到的字符串,和IPAddress.Address是反的

192.168.1.18    对应的Address是0x1201A8C0   高位在低地址存储

 

 

 

uint number = 3758205120;                IPAddress ipAddress1 = IPAddress.Parse(number.ToString());                Console.WriteLine(ipAddress1.ToString());                Console.WriteLine(ipAddress1.Address);                Console.WriteLine();                IPAddress ipAddress2 = new IPAddress(number);                Console.WriteLine(ipAddress2.ToString());                Console.WriteLine(ipAddress2.Address);

 

 

 

转载地址:http://gnrxl.baihongyu.com/

你可能感兴趣的文章
向今天要结果; 向明天要动力 eclipse不自动弹出提示(alt+/快捷键失效)
查看>>
在PowerShell脚本中集成Microsoft Graph
查看>>
[.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst
查看>>
函数 devm_kzalloc()【转】
查看>>
Java 多线程编程
查看>>
HBase常用Shell命令
查看>>
从面试官角度告诉大家如何准备项目方面的描述
查看>>
the server responded with a status of 414 (Request-URI Too Large)
查看>>
Vue.js devtool插件安装后无法使用的解决办法【最简单有效的解决方法】
查看>>
C# winform或控制台Properties.Settings.Default的使用及存储位置
查看>>
node读写本地文件
查看>>
初学者的React全家桶完整实例
查看>>
eclipse创建maven web项目工程步骤示例
查看>>
洛谷P3746 [六省联考2017]组合数问题
查看>>
[LeetCode] Special Binary String 特殊的二进制字符串
查看>>
戏说java与web
查看>>
PHP内置服务器
查看>>
Spring核心技术(十三)——环境的抽象
查看>>
通过串口进行通信 :
查看>>
Cloudstack 虚拟机实例(四)
查看>>