java取ip
『壹』 java怎麼獲取請求的ip
java獲取外網ip地址方法:
public class Main {
public static void main(String[] args) throws SocketException {
System.out.println(Main.getRealIp());
}
public static String getRealIp() throws SocketException {
String localip = null;// 本地IP,如果沒有配置外網IP則返回它
String netip = null;// 外網IP
Enumeration<NetworkInterface> netInterfaces =
NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
boolean finded = false;// 是否找到外網IP
while (netInterfaces.hasMoreElements() && !finded) {
NetworkInterface ni = netInterfaces.nextElement();
Enumeration<InetAddress> address = ni.getInetAddresses();
while (address.hasMoreElements()) {
ip = address.nextElement();
if (!ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 外網IP
netip = ip.getHostAddress();
finded = true;
break;
} else if (ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 內網IP
localip = ip.getHostAddress();
}
}
}
if (netip != null && !"".equals(netip)) {
return netip;
} else {
return localip;
}
}
}
『貳』 JAVA怎麼獲取IP地址
java代碼獲取ip地址方法是
調用java.net包下面的的InetAddress類獲取。
『叄』 JAVA獲取IP地址
public static void main(String[] args) { try { // 獲取計算機名 String name = InetAddress.getLocalHost().getHostName(); // 獲取IP地址 String ip = InetAddress.getLocalHost().getHostAddress(); System.out.println("計算機名:"+name); System.out.println("IP地址:"+ip); } catch (UnknownHostException e) { System.out.println("異常:" + e); e.printStackTrace(); } }
是否可以解決您的問題?
『肆』 java如何獲取用戶真實的ip
1、如果伺服器如果沒有採用反向代理,而且客戶端沒有用正向代理的話,那麼可以獲取客戶端的真實IP地址request.getRemoteAddr()
2、如果伺服器如果沒有採用反向代理,而且客戶端有用正向代理的話,那麼通過request.getRemoteAddr()獲取客戶端的IP地址是客戶端 的代理伺服器的地址,並不是客戶端的真實地址,
3、如果客戶端使用的是多層代理的話,伺服器獲得的客戶端地址是客戶端的最外圍代理伺服器的地址如果伺服器如果採用反向代理伺服器,不管客戶端採用的是何種方式訪問伺服器。
//獲得客戶端真實IP地址的方法一:
publicStringgetRemortIP(HttpServletRequestrequest){
if(request.getHeader("x-forwarded-for")==null){
returnrequest.getRemoteAddr();
}
returnrequest.getHeader("x-forwarded-for");
}
//獲得客戶端真實IP地址的方法二:
publicStringgetIpAddr(HttpServletRequestrequest){
Stringip=request.getHeader("x-forwarded-for");
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip=request.getHeader("Proxy-Client-IP");
}
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip=request.getHeader("WL-Proxy-Client-IP");
}
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip=request.getRemoteAddr();
}
returnip;
}
『伍』 java怎麼獲取ip地址
java獲取ip地址
public static void main(String[] args) { try { // 獲取計算機名 String name = InetAddress.getLocalHost().getHostName(); // 獲取IP地址 String ip = InetAddress.getLocalHost().getHostAddress(); System.out.println("計算機名:"+name); System.out.println("IP地址:"+ip); } catch (UnknownHostException e) { System.out.println("異常:" + e); e.printStackTrace(); } }
『陸』 java中獲取本地IP地址
方法如下:
方法一,使用CMD命令:
public static String getLocalIPForCMD(){
StringBuilder sb = new StringBuilder();
String command = "cmd.exe /c ipconfig | findstr IPv4";
try {
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line = br.readLine()) != null){
line = line.substring(line.lastIndexOf(":")+2,line.length());
sb.append(line);
}
br.close();
p.destroy();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
方法二,使用Java方法:
public static String getLocalIPForJava(){
StringBuilder sb = new StringBuilder();
try {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface intf = (NetworkInterface) en.nextElement();
Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses();
while (enumIpAddr.hasMoreElements()) {
InetAddress inetAddress = (InetAddress) enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress()
&& inetAddress.isSiteLocalAddress()) {
sb.append(inetAddress.getHostAddress().toString()+"\n");
}
}
}
} catch (SocketException e) { }
return sb.toString();
}
『柒』 java如何獲取當前登錄ip
第一種:獲取本機的IP
Enumeration<NetworkInterface>
netInterfaces
=
null;
try
{
netInterfaces
=
NetworkInterface.getNetworkInterfaces();
while
(netInterfaces.hasMoreElements())
{
NetworkInterface
ni
=
netInterfaces.nextElement();
System.out.println("DisplayName:"
+
ni.getDisplayName());
System.out.println("Name:"
+
ni.getName());
Enumeration<InetAddress>
ips
=
ni.getInetAddresses();
while
(ips.hasMoreElements())
{
System.out.println("IP:"
+
ips.nextElement().getHostAddress());
ipTemp=
ni.getInetAddresses().nextElement().getHostAddress();
if(ipTemp!="127.0.0.1"
&&
!"127.0.0.1".equals(ipTemp))
{
ip=ipTemp;
}
}
}
}catch(Exception
ee)
{
ee.printStackTrace();
}
第二種:也是本機的:
InetAddress
addr
=
InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//獲得本機IP
『捌』 《java》中如何提取本地IP
《java》中提取本地IP的方法如下:
private static void () {
try {
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
NetworkInterface net;
InetAddress inetAddress;
while (nets.hasMoreElements()) {
net = nets.nextElement();
Enumeration<InetAddress> address = net.getInetAddresses();
while (address.hasMoreElements()) {
inetAddress = address.nextElement();
if (inetAddress!=null&&inetAddress instanceof Inet4Address)
System.out.println(inetAddress.getHostAddress());
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}