public class IP2Long {

	// 将127.0.0.1形式的IP地址转换成十进制整数,这里没有进行任何错误处理
	public static long ipToLong(String strIp) {
		long[] ip = new long[4];
		// 先找到IP地址字符串中.的位置
		int position1 = strIp.indexOf(".");
		int position2 = strIp.indexOf(".", position1 + 1);
		int position3 = strIp.indexOf(".", position2 + 1);
		// 将每个.之间的字符串转换成整型
		ip[0] = Long.parseLong(strIp.substring(0, position1));
		ip[1] = Long.parseLong(strIp.substring(position1 + 1, position2));
		ip[2] = Long.parseLong(strIp.substring(position2 + 1, position3));
		ip[3] = Long.parseLong(strIp.substring(position3 + 1));
		return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
	}

	// 将十进制整数形式转换成127.0.0.1形式的ip地址
	public static String longToIP(long longIp) {
		StringBuffer sb = new StringBuffer("");
		// 直接右移24位
		sb.append(String.valueOf((longIp >>> 24)));
		sb.append(".");
		// 将高8位置0,然后右移16位
		sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));
		sb.append(".");
		// 将高16位置0,然后右移8位
		sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));
		sb.append(".");
		// 将高24位置0
		sb.append(String.valueOf((longIp & 0x000000FF)));
		return sb.toString();
	}

	public static void main(String[] args) {
		String ipStr = "192.168.0.1";
		long longIp = IP2Long.ipToLong(ipStr);
		System.out.println("192.168.0.1 的整数形式为:" + longIp);
		System.out.println("整数" + longIp + "转化成字符串IP地址:"
				+ IP2Long.longToIP(longIp));
		// ip地址转化成二进制形式输出
		System.out
				.println("192.168.0.1 的二进制形式为:" + Long.toBinaryString(longIp));

	}
}
最近下载更多
q442586235  LV16 2015年8月5日
zhangrenhua  LV16 2015年6月8日
节操君  LV15 2013年12月13日
最近浏览更多
xiao小果  LV13 2022年6月6日
   LV1 2021年10月14日
aslyyds  LV2 2021年5月24日
听雨轩丿  LV10 2021年5月9日
能不能不存在  LV13 2020年5月11日
zdl638  LV6 2020年4月29日
wei112233  LV15 2020年4月2日
zhoumengshun  LV4 2020年4月1日
136984  LV3 2019年11月10日
1095402829  LV18 2019年10月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友