tnblog
首页
视频
资源
登录
愿你出走半生,归来仍是少年
排名
3
文章
317
粉丝
22
评论
14
bootstrap 栅格布局一小例子
剑轩 : 后端写样式有点痛苦哇
一点flex布局的运用
剑轩 : 后端写样式有点痛苦哇
vue.js常用指令
剑轩 : 可以可以,多总结一点
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

C# IP地址与long转换

7038人阅读 2020/2/3 11:35 总访问:2063093 评论:0 收藏:0 手机
分类: NET


1、IP地址转换为整数

原理:IP地址每段可以看成是8位无符号整数即0-255,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个无符号的32位整数。

举例:一个ip地址为10.0.3.193

每段数字 相对应的二进制数

10 00001010

0 00000000

3 00000011

193 11000001

组合起来即为:00001010 00000000 00000011 11000001,转换为10进制就是:167773121,即该IP地址转换后的数字就是它了。

代码:

  1.         public static long IpToInt(string ip)
  2.         {            char[] separator = new char[] { '.' };            string[] items = ip.Split(separator);            return long.Parse(items[0]) << 24
  3.                     | long.Parse(items[1]) << 16
  4.                     | long.Parse(items[2]) << 8 
  5.                     | long.Parse(items[3]);
  6.         }

2、整数转换为IP地址

原理:把这个整数转换成一个32位二进制数。从左到右,每8位进行一下分割,得到4段8位的二进制数,把这些二进制数转换成整数然后加上”.”,就是这个ip地址了。

举例,整数:167773121

二进制表示形式为:00001010 00000000 00000011 11000001

分割成四段:00001010,00001010,00000011,11000001,分别转换为整数后加上“.”就得到了10.0.3.193。

C#代码:

  1.         public static string IntToIp(long ipInt)
  2.         {
  3.             StringBuilder sb = new StringBuilder();
  4.             sb.Append((ipInt >> 24) & 0xFF).Append(".");
  5.             sb.Append((ipInt >> 16) & 0xFF).Append(".");
  6.             sb.Append((ipInt >> 8) & 0xFF).Append(".");
  7.             sb.Append(ipInt & 0xFF);            return sb.ToString();
  8.         }

3、使用System.Net下的IPAddress类

IPAddress.Parse() 将 IP 地址字符串转换为 IPAddress 实例。

IPAddress.ToString() 将 Internet 地址转换为标准表示法。

C#代码:

  1.         static void Main(string[] args)
  2.         {            string ip = "10.0.3.193";            long ipInt = IpToInt(ip);
  3.             Console.WriteLine(ipInt);
  4.             Console.WriteLine(IntToIp(ipInt));            //使用long ulong int 会溢出,使用uint就没问题
  5.             uint netInt = (uint)IPAddress.HostToNetworkOrder((Int32)ipInt);
  6.             IPAddress ipaddr = new IPAddress((long)netInt);
  7.             IPAddress ipaddr1 = IPAddress.Parse(ip);
  8.             Console.WriteLine(ipaddr.ToString());
  9.             Console.WriteLine(ipaddr1.ToString());
  10.             Console.ReadKey();
  11.         }

 原文:https://www.cnblogs.com/luxiaoxun/p/3376682.html


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

C IP地址与byte转换

直接贴代码:stringip=&quot;47.102.151.54&quot;; byte[]byts=IPAddress.Parse(ip).GetAddressBytes(); IPAddressiPAddr...

Kubernetes CaliC IPAM

Kubernetes Calico IPAM[TOC] IPAM 简介CNI的职责包括给 Container 分配网络设备,并且分配IP,IPAM(IP Address Managemen...

.net core 获取起始地址与端口。获取域名,获取端口等

例如请求的地址是: http://localhost:4800/account/login 获取整个url地址:在页面(cstml)中 Microsoft.AspNetCore.Ht...

js获取当前地址栏的地址与端口。js获取当前导航栏ip和端口。js获取地址栏参数。vue获取带的地址栏参数

[TOC]js获取当前地址栏的地址与端口。js获取当前导航栏ip和端口let API_HOST = window.location.protocol+&quot;//&quot;+w...

C中的int、long、float、double等类型都占多少个字节的内存?

上测试代码 using System; public static class Program { public static void Main(string[] args) { ...

三行代码 人民币金额大写转换

publicstaticStringConvertToChinese(Decimalnumber) { vars=number.ToString(&quot;#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H...

c、VB.net中全角半角转换方法

///&lt;summary&gt; ///转全角的函数(SBCcase) ///&lt;/summary&gt; ///&lt;paramname=&quot;input&quot;&gt;任意字符串...

C与Java二进制编码转换,补码

在C#与Java接口对接时,需要将图片转化为二进制编码传输,这时候发现c#转换出来的编码的值是0~255的范围,而java方需要的是...

使用ffmpeg进行视频与音频格式转换。avi转mp4flac转mp3m4a转mp3等

ffmpeg简介:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它...

html转换为js,节省重复模块的编写时间

有些时候,我们需要多次应用到自己的布局块,我们可以通过将html代码装换成js文件来装取代码下次需要用到时,去引入对应的j...

JS 时间戳转换时间及时间转换

前端有时候拿到数据库的时间有时候会是这个样子的 2020-03-03 T 08:05大家一般都是用截取但是,这样有时候会很麻烦,然后写...

类型转换

将字符串转成double类型public static double ToDouble(this string source, double defaultValue) { if (!string....

网络图片转换为Base64格式笔记

/// &lt;summary&gt; /// 网络图片转换为Base64格式 /// &lt;/summary&gt; /// &lt;param name=&quot;urlAddress&...

Expression表达式树类型转换

问题描述:Expression&lt;Func&lt;AClass,bool&gt;&gt;expression如何转成Expression&lt;Func&lt;BClass,bool&gt;&gt;expre...

mvc viewbag转换成html后台输出内容转换成html

直接@Html.Raw()方法即可比如@Html.Raw(ViewBag.html)