代码仅供参考,没做任何异常处理..
public static void main(String[] args) {
String ip = "127.0.0.1";
String[] toArray = ip.split("\\.");
long ipToLong = 0L;
ipToLong = ((Long.parseLong(toArray[0])) << 24) + (Long.parseLong(toArray[1]) << 16) + (Long.parseLong(toArray[2]) <<
+ (Long.parseLong(toArray[3]));
System.out.println("ipToLong: " + ipToLong);
StringBuilder sbIns = new StringBuilder();
sbIns.append(ipToLong >>> 24);
sbIns.append(".");
sbIns.append((ipToLong & 0x00FFFFFF) >>> 16);
sbIns.append(".");
sbIns.append((ipToLong & 0x0000FFFF) >>>
;
sbIns.append(".");
sbIns.append(ipToLong & 0x000000FF);
System.out.println("longToIp: " + sbIns.toString());
StringBuilder sb = new StringBuilder();
StringBuilder ipToBinary = null;
for(String ipNo : toArray){
ipToBinary = new StringBuilder();
String result = toBinary(Integer.parseInt(ipNo),ipToBinary);
sb.append(result);
}
System.out.println("binary: " + sb.toString());
}
private static String toBinary(int ip,StringBuilder sb){
int val = (ip >>> 1);
int mod = (ip % 2);
sb.append(mod);
if(val > 1){
toBinary(val, sb);
}else{
sb.append(val);
}
paddingZero(sb);
// sb.reverse();
char[] ch = sb.toString().toCharArray();
char[] reverse = new char[ch.length];
int length = (reverse.length - 1);
int reverseIdx = 0;
for(int i = length; i >= 0; i--){
reverse[reverseIdx++] = ch[i];
}
return (String.valueOf(reverse));
}
private static StringBuilder paddingZero(StringBuilder ipNodeBinary){
int length = ipNodeBinary.length();
int paddingZeroLength = (8 - length);
for(int i = 0; i < paddingZeroLength; i++){
ipNodeBinary.append("0");
}
return ipNodeBinary;
}
分享到:
相关推荐
在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...
总的来说,这个Java项目提供了一种离线方式来处理IP查询,这对于那些需要高效、本地化的IP地址到地理位置转换的应用来说非常有用。它可能涉及到自定义的文件读取、解析和索引机制,这些都是Java程序员需要掌握的重要...
Java_IPv4转换_ip2long_long2IP,与php/java/javascript互相兼容
在Java编程中,根据IP地址反查对应的省市县地址是一项常见的需求,这通常涉及到网络编程和地理信息系统(GIS)的应用。下面将详细讲解如何利用Java实现这一功能。 首先,我们需要理解IP地址的基本概念。IP地址是由...
输入IP地址及掩码(如24),计算出地址范围 1、计算出掩码指定的IP地址个数 2、分割IP地址 3、将10.0.0.0形式的ip地址转换成10进制整数 4、将10进制整数形式转换成127.0.0.1形式的IP地址
在Java中,`java.net.InetAddress`类提供了IP地址和主机名的转换功能。例如,通过`InetAddress.getByName(String host)`方法可以将IP地址字符串(IPv4或IPv6)转换为`InetAddress`对象,而`InetAddress.getAddress()...
总结,Java中根据IP获取国家和地区名称涉及IP库的使用、IP地址的转换、IP范围的查找以及可能的第三方库或API服务。具体实现方式取决于项目需求和资源限制。通过上述步骤和方法,你可以轻松地在Java程序中实现这一...
在编程领域,进制转换是一项基础且重要的技能,尤其是在Java这样的多用途编程语言中。本文将深入探讨Java中如何进行进制转换,包括二进制、八进制、十进制和十六进制之间的转换。这对于任何对Java感兴趣或者正在学习...
在Java编程中,判断一个IP地址是内网IP(私有IP)还是公网IP(全局IP)是一项常见的任务,尤其在网络编程和服务器配置中。内网IP通常用于局域网内部通信,而公网IP则是互联网上的唯一标识。下面将详细探讨如何实现这...
`InetAddress`提供了`getByName()`方法,可以将字符串形式的IP地址转换为`InetAddress`对象,然后通过`getHostAddress()`方法获取IP地址,`getHostName()`方法则能获取主机名,但这些方法无法直接得到国家或地区的...
Java实现的进制转换工具类完整示例 Java实现的进制转换工具类是...Java实现的进制转换工具类可以广泛应用于各种场景,如数据加密、颜色表示、IP地址表示等。在使用该工具类时,需要根据实际情况选择合适的方法和参数。
要将IP地址转换为城市代码,我们需要一个包含IP地址与地理位置对应关系的数据源。 一种常见的解决方案是使用IP数据库,如MaxMind的GeoLite库。这个库包含了全球的IP地址范围及其对应的城市、国家等信息。Java中可以...
在Java编程环境中,读取纯真IP地址数据库是一项常见的任务,尤其对于需要进行IP定位或者网络管理的应用来说。纯真IP数据库(通常称为QQWRY或IPSeeker)是一个包含了全球IP地址及其对应地理位置信息的数据库,它由一...
// 使用位运算将int型IP转换为字符串 // ... (省略其他代码) // 然后进行字符串的反转和分段操作 // ... (省略其他代码) } ``` 虽然这个示例是C语言,但转换逻辑同样适用于Java。在Java中,可以创建一个...
总的来说,这个Java IP查询库为开发者提供了便捷的工具,使他们能够轻松地在应用程序中集成IP地址到地理位置的转换功能。无论是出于商业需求还是数据分析目的,它都是一个实用且高效的解决方案。
- **新浪接口**:`http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=IP地址`,返回JSON格式的数据,解析时更加方便,可以直接转换为Java对象。 - **淘宝接口**:`...
Java开发者可以使用IP2Location的Java SDK,通过简单的API调用来访问这些数据库,实现IP到地理位置的转换。IP2Location还提供了IP段归属、ISP信息等增值服务。 再者,dbIP是另一个开源的IP地理位置数据库,它提供了...
GeoIP2提供了API,可以将IP地址转换为国家、地区、城市等信息。以下是一个简单的示例: ```java import com.maxmind.geoip2.DatabaseReader; import com.maxmind.geoip2.exception.GeoIp2Exception; import ...
根据网段ip和掩码自动计算ip段,ip相关操作基础类。包括:根据 ip/掩码位 计算IP段的起始IP;根据 ip/掩码位 计算IP段的终止IP;计算子网大小等。