Java获取本机的公网IP地址代码示例

爱站 01-02 34 0条评论
55Link友情链接交易平台
摘要: 在开发过程中,获取本机的公网IP地址是一项常见的需求。使用Java语言可以很方便地实现这一功能。以下是一个简单的代码示例:importjava.net.HttpURLConnect...

在开发过程中,获取本机的公网IP地址是一项常见的需求。使用Java语言可以很方便地实现这一功能。以下是一个简单的代码示例:

import java.net.HttpURLConnection;import java.net.InetAddress;import java.net.URL;import java.util.Scanner;public class GetPublicIP {public static void main(String[] args) {try {// 创建一个URL对象,连接到一个在线服务以获取公网IP地址URL url = new URL("http://checkip.amazonaws.com");HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("GET");// 读取响应内容,即为公网IP地址Scanner scanner = new Scanner(connection.getInputStream());String publicIP = scanner.nextLine();System.out.println("Public IP: " + publicIP);// 获取本机的局域网IP地址InetAddress localAddress = InetAddress.getLocalHost();System.out.println("Local IP: " + localAddress.getHostAddress());} catch (Exception e) {e.printStackTrace();}}}

该代码使用 HttpURLConnection 类连接到一个在线服务(如 checkip.amazonaws.com ),读取响应内容以获取当前机器的公网IP地址。它也使用 InetAddress 类获取本机的局域网IP地址。通过这段代码,开发者可以很轻松地在Java程序中获取本机的IP地址信息。


Java如何获取本地计算机的IP地址和主机名

可以使用 (),代码如下:

手把手教你用Java获取IP归属地

本文旨在手把手教你使用Java实现获取IP归属地的功能,以解决各大平台如微信公众号、知乎和抖音等所推出的相关功能。 实现这一目标的步骤涉及获取IP地址、解决Nginx反向代理问题以及通过IP获取归属地等关键环节。 首先,我们需要基于Spring Boot搭建项目,添加控制器(Controller)中使用HttpServletRequest获取IP地址。 然而,在本地环境下,获取的IP可能是0:0:0:0:0:0:0:1或局域网IP,这些都不具备公网访问的能力,因此需要将项目部署至外网服务器,以确保能成功获取到公网IP。 面对Nginx反向代理的挑战,我们需要在Nginx的配置文件中添加特定的配置,确保客户端请求的IP能够被正确传入Nginx服务。 通过这一措施,最终获取到的是客户端的真实IP,而非Nginx服务器的IP。 获取到IP后,接下来的步骤是获取归属地。 有多种方法可以实现这一目标,本文将介绍两种主要途径:一是通过IP归属地API获取,需发起HTTP请求,使用Spring Boot的RestTemplate来完成;二是通过本地地址库获取,推荐使用Ip2region库,该库以微秒级的速度进行查询,无需担心API服务中断的问题。 为了实现本地地址库的使用,我们首先需要从GitHub官网下载地址库,并将其放置在项目资源目录下。 接下来,引入相应的Maven依赖,编写代码以完成IP归属地的查询。 最终,通过获取region信息,即可获取到IP的归属地,如“中国|0|广东省|广州市|电信”等。 为验证上述程序的有效性,我们以小程序的形式展示IP归属地获取功能,并附上页面效果截图。 只需通过扫描二维码,即可查询到自身的归属地信息,直观且便捷。

如何在java中获取本地ip

很多朋友都想知道java如何获取本地ip?下面就一起来了解一下吧~

获取java本地ip一共有两种方法:1、inetAddress类;2、封装方法。

1、 inetAddress类

通过InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。 InetAddress类提供了将主机名解析为IP地址(或反之)的方法。 其生成InetAddress对象的方法。

4Address;;;publicclassMain{publicstaticvoidmain(String[]args)throwsUnknownHostException{//Inet4Addressaddress=(Inet4Address)();InetAddressaddress=();(address);//获取计算机名称和ip地址StringhostAddress=();(hostAddress);//获取ip地址StringhostName=();(hostName);//获取计算机名称}}

2、封装方法。

publicstaticStringgetLocalIp(){Enumeration netInterfaces=null;try{netInterfaces=();while(()){NetworkInterfacenif=();Enumeration InetAddress=();while(()){Stringip=()();if((192.168)){returnip;}}}}catch(SocketExceptione){}return127.0.0.1;}
文章版权及转载声明:

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

赞(0