永发信息网

我在本机上,想写一个java程序获取我本机的外网ip地址,如何搞

答案:3  悬赏:80  手机版
解决时间 2021-03-10 00:53
  • 提问者网友:贪了杯
  • 2021-03-09 16:15
我在本机上,想写一个java程序获取我本机的外网ip地址,如何搞
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-03-09 16:23
import java.net.*;

public class Test {

public static void main(String[] args) throws UnknownHostException {
String IP = null;
String host = null;
InetAddress ia;

ia = InetAddress.getLocalHost();
host = ia.getHostName();// 获取计算机名字
IP = ia.getHostAddress();// 获取IP

System.out.println(host);
System.out.println(IP);
}

}
全部回答
  • 1楼网友:春色三分
  • 2021-03-09 17:50
private String getIpAddr() { String ipAddress = null; //ipAddress = this.getRequest().getRemoteAddr(); ipAddress = this.getRequest().getHeader("x-forwarded-for"); if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = this.getRequest().getHeader("Proxy-Client-IP"); } if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = this.getRequest().getHeader("WL-Proxy-Client-IP"); } if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = this.getRequest().getRemoteAddr(); if(ipAddress.equals("127.0.0.1")){ //根据网卡取本机配置的IP InetAddress inet=null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } ipAddress= inet.getHostAddress(); } } //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15 if(ipAddress.indexOf(",")>0){ ipAddress = ipAddress.substring(0,ipAddress.indexOf(",")); } } return ipAddress; }
  • 2楼网友:你哪知我潦倒为你
  • 2021-03-09 17:02
恩。。。irf540说的是。。。。。。来百度回答问题就是好玩,也没什么真正高手 不过说实话,掌握了光从路由器就能定位到主机ip的话,你就发财啦~~~~~~~ 哈哈哈,,,,,去看看子网掩码吧。。。。。。 问问题之前也要先了解一下吧。。。 ####################################### 又没分,我就告诉你request.getremoteaddr()哈哈哈哈哈哈 你干脆去csdn问算了,不过路由器原理都不知道的话。。。×××
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯