架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 24147|回复: 0

[资料] C# IP地址与数字之间的互转

[复制链接]
发表于 2016-5-31 10:23:53 | 显示全部楼层 |阅读模式
QQ截图20160531102311.jpg

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Text;

  6. namespace ip2Long
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             //首先,输入一个标准的IP地址 例如 192.168.1.1
  13.             Console.WriteLine("请输入一个标准的IP地址 例如 192.168.1.1");
  14.             //接收用户输入的数据
  15.             string ip = Console.ReadLine();
  16.             string IntIp = ipToLong(ip);
  17.             Console.WriteLine(string.Format("IP  {0} 地址 转换后结果 :{1}", ip, IntIp));
  18.             IntIp = ipToLong(ip);
  19.             Console.WriteLine(string.Format("IP2  {0} 地址 转换后结果 :{1}", ip, IntIp));
  20.             ip = LongToip(IntIp);
  21.             Console.WriteLine(string.Format("数字 {0}  转换后IP地址结果 :{1}", IntIp, ip));
  22.             Console.ReadKey();

  23.         }
  24.         /// <summary>
  25.         /// IP地址转换为数字
  26.         /// </summary>
  27.         /// <param name="ip">ip地址</param>
  28.         /// <returns></returns>
  29.         static string ipToLong(string ip)
  30.         {
  31.             long IntIp = 0;
  32.             string[] ips = ip.Split('.');
  33.             IntIp = long.Parse(ips[0]) << 0x18 | long.Parse(ips[1]) << 0x10 | long.Parse(ips[2]) << 0x8 | long.Parse(ips[3]);
  34.             return IntIp.ToString();

  35.         }
  36.         /// <summary>
  37.         /// C# 简单的写法
  38.         /// </summary>
  39.         /// <param name="ip"></param>
  40.         /// <returns></returns>
  41.         static string ipToLong2(string ip)
  42.         {
  43.             IPAddress ipaddress = IPAddress.Parse(ip);
  44.             byte[] addbuffer = ipaddress.GetAddressBytes();
  45.             Array.Reverse(addbuffer);
  46.             return System.BitConverter.ToUInt64(addbuffer, 0).ToString();
  47.         }
  48.         /// <summary>
  49.         /// IP地址转换为数字
  50.         /// </summary>
  51.         /// <param name="ip">ip地址</param>
  52.         /// <returns></returns>
  53.         static string LongToip(string ip)
  54.         {
  55.             long IntIp = long.Parse(ip);
  56.             StringBuilder sb = new StringBuilder();
  57.             sb.Append(IntIp >> 0x18 & 0xff).Append(".");
  58.             sb.Append(IntIp >> 0x10 & 0xff).Append(".");
  59.             sb.Append(IntIp >> 0x8 & 0xff).Append(".");
  60.             sb.Append(IntIp & 0xff);
  61.             return sb.ToString();

  62.         }
  63.     }
  64. }
复制代码






上一篇:推荐一款vs高亮插件
下一篇:QQ远程Win7/Win8/Win10可以看到桌面但无法控制操作不了解决办法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-6-3 22:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表