Java 获取 IP 地址并判断是否为公网 IP

爱站 11-03 4 0条评论
摘要: Java提供InetAddress类用于获取IP地址信息。通过调用InetAddress.getLocalHost()方法可以获取本机的IP地址。示例代码如下:InetAddres...

Java 提供 InetAddress 类用于获取 IP 地址信息。通过调用 InetAddress.getLocalHost() 方法可以获取本机的 IP 地址。示例代码如下:

InetAddress localHost = InetAddress.getLocalHost();String ipAddress = localHost.getHostAddress();System.out.println("本机 IP 地址: " + ipAddress);

要判断获取的 IP 地址是否为公网 IP,可以编写一个工具类来实现。可以借助 InetAddress 类判断 IP 地址是否为回环地址或者本地地址,是则认为是私有 IP 地址。可以检查 IP 地址是否属于私有 IP 地址段,不属于则认为是公网 IP 地址。示例代码如下:

public static boolean isPublicIpAddress(String ipAddress) {try {InetAddress inetAddress = InetAddress.getByName(ipAddress);if (inetAddress.isLoopbackAddress() || inetAddress.isSiteLocalAddress()) {return false; // 私有 IP 地址}int[] privateIps = {/*私有 IP 地址段*/};for (int privateIp : privateIps) {if ((inetAddress.getAddress()[0] & 0xff) == (privateIp >> 24) &&(inetAddress.getAddress()[1] & 0xff) == (privateIp >> 16) &&(inetAddress.getAddress()[2] & 0xff) == (privateIp >> 8) &&(inetAddress.getAddress()[3] & 0xff) == (privateIp & 0xff)) {return false; // 私有 IP 地址}}return true; // 公网 IP 地址} catch (UnknownHostException e) {return false;}}

通过以上方式,我们就可以在 Java 程序中获取本机的 IP 地址,并判断它是否为公网 IP 地址。这在网络编程中是一个非常有用的功能。


用java语言 截取字符串中的Ip地址,并判断是否合法,请问怎么做? 例“ip addess 192.160.2.3” 判断合法

2步做,先用正则判断格式,比如ip address (\\d{1,3}\\.){3}\\d{1,3} (Java正则)得到ip数值后,再用if 判断各位数字是否在0-255之间if(d>=0 && d<=255) print 合法;else print 不合法;

java编写正则表达式,判断给定的是否是一个合法的IP地址怎么写?

正则表达式匹配ip地址,实际上就是分别判断每个点直接的数字是否符合规范。\x0d\x0apackage com;\x0d\x0aimport ;\x0d\x0a import ; \x0d\x0a public class TestRegex { \x0d\x0apublic static boolean isboolIP(String ipAddress){ \x0d\x0aStringip=(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2}); \x0d\x0aPattern pattern = (ip); \x0d\x0aMatcher matcher = (ipAddress); \x0d\x0areturn ();\x0d\x0a } \x0d\x0a /** * @param args\x0d\x0a*/ \x0d\x0a public static void main(String[] args) { \x0d\x0a // TODO Auto-generated method stub\x0d\x0aString ipAddress1 = 10.;\x0d\x0a String ipAddress2 = 0.0.0.0; \x0d\x0a String ipAddress3 = 255.255.255.255;\x0d\x0aString ipAddress4 = 192.168.2.1;\x0d\x0a String ipAddress5 = ;\x0d\x0aString ipAddress6 = nihao; \x0d\x0aString ipAddress7 = 你好!!;\x0d\x0a if(isboolIP(ipAddress1)){\x0d\x0a (IP正确); \x0d\x0a }else{\x0d\x0a (IP错误); \x0d\x0a } if(isboolIP(ipAddress2)){ \x0d\(IP正确); }else{ \x0d\x0a (IP错误);\x0d\x0a } if(isboolIP(ipAddress3)){\x0d\x0a (IP正确); }else{\x0d\(IP错误);\x0d\x0a}\x0d\x0a if(isboolIP(ipAddress4)){\x0d\(IP正确); }else{ \x0d\(IP错误);

Java查询公网ip查询具体地理位置

当然得去IP字典里查,如果你有IP地理位置的数据的话。 如果没有的,就得上一些查询IP地理位置的网站去“偷”,具体方法参照我写的一篇技术文章,我写的是根据手机号码查询归属地,原理是一样的。 麻烦采纳,谢谢!

文章版权及转载声明:

作者:爱站本文地址:https://www.awz.cc/post/4497.html发布于 11-03
文章转载或复制请以超链接形式并注明出处爱网站

赞(0