- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Text;
-
- namespace ip2Long
- {
- class Program
- {
- static void Main(string[] args)
- {
- //首先,输入一个标准的IP地址 例如 192.168.1.1
- Console.WriteLine("请输入一个标准的IP地址 例如 192.168.1.1");
- //接收用户输入的数据
- string ip = Console.ReadLine();
- string IntIp = ipToLong(ip);
- Console.WriteLine(string.Format("IP {0} 地址 转换后结果 :{1}", ip, IntIp));
- IntIp = ipToLong(ip);
- Console.WriteLine(string.Format("IP2 {0} 地址 转换后结果 :{1}", ip, IntIp));
- ip = LongToip(IntIp);
- Console.WriteLine(string.Format("数字 {0} 转换后IP地址结果 :{1}", IntIp, ip));
- Console.ReadKey();
-
- }
- /// <summary>
- /// IP地址转换为数字
- /// </summary>
- /// <param name="ip">ip地址</param>
- /// <returns></returns>
- static string ipToLong(string ip)
- {
- long IntIp = 0;
- string[] ips = ip.Split('.');
- IntIp = long.Parse(ips[0]) << 0x18 | long.Parse(ips[1]) << 0x10 | long.Parse(ips[2]) << 0x8 | long.Parse(ips[3]);
- return IntIp.ToString();
-
- }
- /// <summary>
- /// C# 简单的写法
- /// </summary>
- /// <param name="ip"></param>
- /// <returns></returns>
- static string ipToLong2(string ip)
- {
- IPAddress ipaddress = IPAddress.Parse(ip);
- byte[] addbuffer = ipaddress.GetAddressBytes();
- Array.Reverse(addbuffer);
- return System.BitConverter.ToUInt64(addbuffer, 0).ToString();
- }
- /// <summary>
- /// IP地址转换为数字
- /// </summary>
- /// <param name="ip">ip地址</param>
- /// <returns></returns>
- static string LongToip(string ip)
- {
- long IntIp = long.Parse(ip);
- StringBuilder sb = new StringBuilder();
- sb.Append(IntIp >> 0x18 & 0xff).Append(".");
- sb.Append(IntIp >> 0x10 & 0xff).Append(".");
- sb.Append(IntIp >> 0x8 & 0xff).Append(".");
- sb.Append(IntIp & 0xff);
- return sb.ToString();
-
- }
- }
- }
复制代码
|