《java》中如何提取本地IP

《java》中如何提取本地IP,第1张

《java》中提取本地IP的方法如下:

private static void getIpAddressByNetworkInterface() {

try {

Enumeration<NetworkInterface> nets = NetworkInterfacegetNetworkInterfaces();  

NetworkInterface net;

InetAddress inetAddress;

while (netshasMoreElements()) {

net = netsnextElement();

Enumeration<InetAddress> address = netgetInetAddresses();

while (addresshasMoreElements()) {

inetAddress = addressnextElement();

if (inetAddress!=null&&inetAddress instanceof Inet4Address)

Systemoutprintln(inetAddressgetHostAddress());

}

}

} catch (SocketException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

java获取外网ip地址方法:

public class Main {

public static void main(String[] args) throws SocketException {

Systemoutprintln(MaingetRealIp());

}

public static String getRealIp() throws SocketException {

String localip = null;// 本地IP,如果没有配置外网IP则返回它

String netip = null;// 外网IP

Enumeration<NetworkInterface> netInterfaces =

NetworkInterfacegetNetworkInterfaces();

InetAddress ip = null;

boolean finded = false;// 是否找到外网IP

while (netInterfaceshasMoreElements() && !finded) {

NetworkInterface ni = netInterfacesnextElement();

Enumeration<InetAddress> address = nigetInetAddresses();

while (addresshasMoreElements()) {

ip = addressnextElement();

if (!ipisSiteLocalAddress()

&& !ipisLoopbackAddress()

&& ipgetHostAddress()indexOf(":") == -1) {// 外网IP

netip = ipgetHostAddress();

finded = true;

break;

} else if (ipisSiteLocalAddress()

&& !ipisLoopbackAddress()

&& ipgetHostAddress()indexOf(":") == -1) {// 内网IP

localip = ipgetHostAddress();

}

}

}

if (netip != null && !""equals(netip)) {

return netip;

} else {

return localip;

}

}

}

   Java中可以使用程序来获取本地ip地址和mac地址,使用InetAddress这个工具类,示例如下:

import javanet;

public class NetInfo {

 public static void main(String[] args) {

    new NetInfo()say();

    }

 public void say() {

   try {

   InetAddress i = InetAddressgetLocalHost();

   Systemoutprintln(i);                  //计算机名称和IP

   Systemoutprintln(igetHostName());    //名称

   Systemoutprintln(igetHostAddress()); //只获得IP

   }

   catch(Exception e){eprintStackTrace();}

 }

}

    也可以通过命令行窗口来查看本地ip和mac地址,输入命令:ipconfig。

代码就不帮你写了,给你个伪代码作为思路

1、ip1和ip2都用split方法获得4元素数组

2、分别定义ip1address1、ip1address2、ip1address3、ip1address4和ip2的对应名称的变量,存储192、168、1、1等数值

3、四段for循环,针对ip1address1、ip1address2、ip1address3、ip1address4嵌套

for(i1从ip1address1到ip2address1)

for(i2从ip1address2到255)但这里要判断如果ip1address1==ip2address1,则不是到255,而是到ip2address2

for第三段,类似第二段

for第四段,类似二三段

String s = i1 + "" + i2 + "" + i3 + "" + i4;

以上就是关于《java》中如何提取本地IP全部的内容,包括:《java》中如何提取本地IP、java怎么获取请求的ip、java如何查询本机ip地址和mac地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10154965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存