C# IP地址与数字之间的互转

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();

        }
    }
}
时间: 2024-09-30 08:57:27

C# IP地址与数字之间的互转的相关文章

MySQL:IP 地址转换(在常见IP地址现数字之间相互转换)

mysql> select inet_aton('192.168.202.12'); +-----------------------------+ | inet_aton('192.168.202.12') | +-----------------------------+ |                  3232287244 | +-----------------------------+ 1 row in set (0.00 sec) 2.IP由数据形式转换为点分形式 mysql>

论述ip地址和子网掩码之间的关系及网关、dns的含义

你一定对IP地址有所了解吧?我们知道在INTERNET中广泛使用的TCP/IP协议就是利用IP地址来区别不同的主机的.如果你曾经进行过TCP/IP协议设置,那么你一定会遇到子网掩码(Subnet mask)这一名词,那么你知道什么是子网掩码吗?它有什么作用呢? 我们知道IP地址是一个4字节(共32bit)的数字,被分为4段,每段8位,段与段之间用句点分隔.为了便于表达和识别,IP地址是以十进制形式表示的如210.52.207.2,每段所能表示的十进制数最大不超过255.IP地址由两部分组成,即网

php实现IP地址和数字相互转换

echo $a=ip2long ("202.97.224.68");//地址转换成数字 系统自带的函数 注:这里面有一个要注意的地方,大概由于PHP无法正确判断转换完的数字类型,出现负数的情况. 这时候只要把原来IP对应的字段int转换成bigint即可 echo 'trueip:'.long2ip('3793747831');//数字转换成IP地址 系统自带的函数

Python—IP地址与整数之间的转换

1. 将整数转换成IP: 思路:将IP地址转换成无符号32位的二进制,再8位进行分割,每8位转换成十进制即可. #!usr/bin/python 2 #encoding=utf-8 3 #1. 将整数转换成32位无符号二进制 4 def intToIp(num): 5 s = [] 6 g = [] 7 h = [] 8 for i in range(32): 9 a = num%2 10 s.insert(0,a) 11 num = num/2 12 print s 13 #2. 每8位进行分

python实现将IP地址转换为数字

话不多说,直接代码 ip_addr='192.168.2.10' # transfer ip to int def ip2long(ip): ip_list=ip.split('.') result=0 for i in range(4): #0,1,2,3 result=result+int(ip_list[i])*256**(3-i) return result long=3232236042 # transfer int to ip def long2ip(long): floor_lis

IP地址、域名、DNS、网址之间的区别

1.IP地址:IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信. 每台连网计算机都依靠IP地址来互相区分.相互联系 2.域名:由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址.每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了.这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名. 3.DNS:在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便

IP地址和int互转

/** * @author: yqq * @date: 2019/5/8 * @description: ip地址与int之间互换 * https://mp.weixin.qq.com/s?__biz=MzIzMzgxOTQ5NA==&mid=2247486894&idx=1&sn=bf17d404a989c3bb202241326d94647b&chksm=e8fe91a7df8918b1708f0cb759c6f9411d43ac22c257d56cc9191f74dc

数字转IP地址函数

--------------------------------------------------------------------- -- Author : htl258(Tony) -- Date   : 2010-06-19 10:34:31 -- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) --          Jul  9 2008 14:43:34 --          Copyrig

IP地址、子网掩码、默认网关、DNS服务器、DHCP服务器详解

今天重新复习下网络知识,借鉴了很多网友的博文,整理出这篇博文,主要内容是:IP地址.子网掩码.默认网关.DNS服务器.DHCP服务器. 1.IP地址 IP是32位二进制数据,通常以十进制表示,并以"."分隔.IP地址是一种逻辑地地址,用来标识网络中一个个主机,IP有唯一性,即每台机器的IP在全世界是唯一的. 2.子网掩码 要想理解什么是子网掩码,就不能不了解IP地址的构成.互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构.IP地址在设计时就考虑到地址分