java获得IP地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java获得IP地址相关的知识,希望对你有一定的参考价值。
我想用java获得本机的IP地址,请高手指教。
我用的是宽带拨号上网,在dos窗口中用ipconfig命令输出如下:
C:\Documents and Settings\ASUS>ipconfig
Windows IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.1.41.101
Subnet Mask . . . . . . . . . . . : 255.0.0.0
Default Gateway . . . . . . . . . : 10.1.41.1
Ethernet adapter 无线网络连接:
Media State . . . . . . . . . . . : Media disconnected
Ethernet adapter SoftEther Virtual LAN Connection:
Media State . . . . . . . . . . . : Media disconnected
PPP adapter 宽带连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 121.229.6.189
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 121.229.6.189
用一般的java方法输出的是本地连接的ip:10.1.41.101,而我需要的是宽带连接的ip:121.119.6.189。
请问各位大侠,有什么java方法可以解决这个问题?
用java的方法在程序中获得本机IP地址,不是人动手查...
你可以用这个方法读取你所需要的本机IP地址
=======================================================
J2SE5.0新特性之ProcessBuilder
这个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等。这里使用它在windows下读取物理网卡的地址
package com.kuaff.jdk5package;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class ProcessBuilderShow
public static List getPhysicalAddress()
Process p = null;
//物理网卡列表
List address = new ArrayList();
try
//执行ipconfig /all命令
p = new ProcessBuilder("ipconfig", "/all").start();
catch (IOException e)
return address;
byte[] b = new byte[1024];
StringBuffer sb = new StringBuffer();
//读取进程输出值
InputStream in = p.getInputStream();
try
while (in.read(b)>0)
sb.append(new String(b));
catch (IOException e1)
finally
try
in.close();
catch (IOException e2)
//以下分析输出值,得到物理网卡
String rtValue = sb.substring(0);
int i = rtValue.indexOf("Physical Address. . . . . . . . . :");
while(i>0)
rtValue = rtValue.substring(i + "Physical Address. . . . . . . . . :".length());
address.add(rtValue.substring(0,18));
i = rtValue.indexOf("Physical Address. . . . . . . . . :");
return address;
public static void main(String[] args)
List address = ProcessBuilderShow.getPhysicalAddress();
for(String add:address)
System.out.printf("物理网卡地址:%s%n", add);
参考技术A 简单实现代码如下:
js获取来源页地址方法:
var url = document.referrer;
document.write(url);
jsp获取来源页地址方法:
String url = request.getHeader(”Referer”);
System.out.println(url);
对比两个方法:
1.js里是”referrer”,jsp里是”referer”,前者比后者多一个”r”;
2.前者如直接输入网址,则显示为空,后者显示null;
import java.net.*;
public class ip5
public static void main(String args[]) throws Exception
String ip = InetAddress.getLocalHost().getHostAddress();
System.out.println(ip);
参考技术B ipconfig -all 试试 参考技术C 我晕,
直接InetAddress.getLocalHost()不就够了,
不懂的去看API,不要提这样的问题了,浪费分啊 参考技术D request里面有这个方法,直接获取系统当前IP
在linux用java根据ip获得mac地址?
找了很多地方实在找不到了,求高手帮忙给段java代码,可以在Linux下获取客户端mac地址的代码,感激不尽,在线等待。。。急。
tryip = InetAddress.getLocalHost();
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
if (network != null)
byte[] mac = network.getHardwareAddress();
if(mac != null)
System.out.print("MAC address : ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++)
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
System.out.println(sb.toString());
catch (UnknownHostException e)
e.printStackTrace();
catch (SocketException e)
e.printStackTrace();
参考技术A 调linux命令:arp <ip地址>
返回字符串中截取mac地址
以上是关于java获得IP地址的主要内容,如果未能解决你的问题,请参考以下文章
java 怎样利用IP地址获得局域网计算机的名字、mac地址、工作组?