java中获取本地IP地址

Enumeration<NetworkInterface>netInterfaces=null;try{netInterfaces=NetworkInterface.ge... 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());
}
}
} catch (Exception e) {
e.printStackTrace();
}

用了枚举,说是因为可以获取本地的所有IP地址,什么情况下会有多个IP地址?另外,如何在J2ME中获取嵌入式设备的IP地址?也要枚举吗?

谢谢!
展开
 我来答
趣事情
2015-10-10 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
方法如下:
方法一,使用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();
}
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
wayneshu
2011-03-23 · TA获得超过145个赞
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
java.net.InetAddress.getLocalHost().getHostAddress()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一对儿核桃
2011-03-22 · 专注跨境电商运营与操作
一对儿核桃
采纳数:77 获赞数:435

向TA提问 私信TA
展开全部
try {
System.out.println(java.net.InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
更多追问追答
追问
这个是J2ME中的方法吗?不需要枚举吗?
追答
一个机器怎么可能有多个IP呢? 不会吧。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
温顺还勤谨的小兔子9
2011-03-22
知道答主
回答量:25
采纳率:0%
帮助的人:13.2万
展开全部
这个情况很多了,比哪机器有双网卡的时候,或者你机器配了vpn的时候。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wsnlaijie
2011-03-22
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
当本地有多张网卡时可以有多个IP地址,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式