《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地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)