数字IP的作用以及转换

数字IP的作用以及转换

1、什么是数字地址?与IP地址有什么区别? 
  简单的说,数字地址就是IP地址的另一种表现形式。都可以被浏览器、ping命令识别还原和访问。 
  区别:IP地址用“点分十进制”表示,用“.”分成4部分;数字地址是一串用“十进制”表示的数字。 

  比如:百度的IP地址“119.75.218.77”转换成数字地址就是“2001459789”。在浏览器中输入2001459789就可以访问百度网站,彰显个性!


2、数字地址有什么用? 

  主要用于快速查询该IP地址或IP段属于哪个城市,从而进行流量统计、根据来访IP显示天气预报、根据IP显示不同的页面等。将IP地址或IP段转换成数字保存在数据库中,可以提高检索速度。要知道,在数据库中数字类型的要比文本类型的检索速度快得多,从而提高网站性能。

  现在很多服务器都有IP白名单限制,只有对应的IP地址才能访问对应的服务器,提高安全性。那么就需要区分不同的IP地址段,给出的是192.168.1.1-192.168.255.255.

这种字符串的IP比较起来会很麻烦,最简单的方式就是转为数字类型的直接比较大小,提高效率。


3、数字IP的转换


public class IPToNumber {

	public static void main(String[] args){
		String ip1 = "192.168.1.100";
		long ip = ipToLong(ip1);
		System.out.println("ip= " + ip);
		String IP = longToIP(ip);
		System.out.println("IP= " + IP);
	}
		
	public static long ipToLong(String iP){
		String[] ipArr = iP.split("\\.");
		long result = 0;
		for(int i = 0; i < ipArr.length; i ++){
			int power = ipArr.length - 1 - i;
			int ip = Integer.parseInt(ipArr[i]);
			result += ip * Math.pow(256, power);
		}
		return result;
	}
	
	public static String longToIP(long ip){
		String[] ipArr = new String[4];
		String result = "";
		for(int i = 0; i < ipArr.length; i ++){
			ipArr[i] = ip % 256 + "";
			ip = ip / 256;
			if(i == 0){
				result = ipArr[i];
			}else{
				result = ipArr[i] + "." + result;
			}
			
		}
		return result;
	}
	
}

输出结果为ip= 3232235876




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值