我在本机上,想写一个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);
}
}
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问算了,不过路由器原理都不知道的话。。。×××
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯