首页 > 编程知识 正文

java可以模拟一个ip地址,java如何获取本地ip

时间:2023-12-27 01:51:17 阅读:323112 作者:JYCN

本文目录一览:

java如何实现对本机的ip地址 网关地址 子网

提供一种可行的方法。供你参考。思路是利用操作系统的shell,执行相应的命令。

以下以WINDOW操作系统为例。LINUX的思路相同。

1,在E;下建立如下两个bat文件,内容分别如下:

e:setip1.bat文件内容:

rem  设置IP、子网掩码、默认网关

c:

cd 

netsh exec  e:setip.bat

另一个文件e:setip.bat文件内容:

interface

ip

set address "本地连接" static 192.168.1.111  255.255.255.0 192.168.1.1

exit

2,执行脚本命令的JAVA程序

java 如何验证ip地址

可以使用正则表达式验证ip地址,ip地址分为v4和v6两个版本,v4为32位,分4段,中间用.隔开,v6为128位,可分为4段32位中间用::隔开。

以下是验证类详细代码:

import java.util.regex.Pattern;

/**

* A collection of utilities relating to InetAddresses.

*/

public class InetAddressUtils {

public static void main(String[] args){

String addr="192.168.1.2";

System.out.println(isIPv4Address(addr));

}

private static final Pattern IPV4_PATTERN =

Pattern.compile(

"^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$");

private static final Pattern IPV6_STD_PATTERN =

Pattern.compile(

"^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$");

private static final Pattern IPV6_HEX_COMPRESSED_PATTERN =

Pattern.compile(

"^((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)$");

public static boolean isIPv4Address(final String input) {

return IPV4_PATTERN.matcher(input).matches();

}

public static boolean isIPv6StdAddress(final String input) {

return IPV6_STD_PATTERN.matcher(input).matches();

}

public static boolean isIPv6HexCompressedAddress(final String input) {

return IPV6_HEX_COMPRESSED_PATTERN.matcher(input).matches();

}

public static boolean isIPv6Address(final String input) {

return isIPv6StdAddress(input) || isIPv6HexCompressedAddress(input);

}

}

求助如何通过java来改变本机的IP地址?

不能改变的,java有内省的安全机制,不支持那些不安全的操作,而修改ip就更不安全了,所以一般不能直接通过java来修改本机ip的

不过获取到关于用户的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或者 Java Applet 制作一个ip地址的输入框(控件)

可以用四个文本框,每个框输入IP地址的一个部分 , 可以把四个文本框放到一个Panel 或 JPanel 中。

如何用java获取本地ip地址

import java.net.Inet4Address;

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.List;

/**

* @author Becolette

* @description TODO

* @date 2015-11-5 下午01:58:46

*/

public class IpAddress {

public static String find() {

ListString ips = new ArrayListString();

// 返回所有网络接口的一个枚举实例

Enumeration? allNetInterfaces = null;

try {

allNetInterfaces = NetworkInterface.getNetworkInterfaces();

} catch (SocketException e) {

e.printStackTrace();

}

InetAddress ip = null;

while (allNetInterfaces.hasMoreElements()) {

NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();

EnumerationInetAddress addresses = netInterface.getInetAddresses();

while (addresses.hasMoreElements()) {

// 获得当前网络接口

ip = (InetAddress) addresses.nextElement();

if (ip != null ip instanceof Inet4Address ip.getHostAddress().indexOf(".") != -1) {

ips.add(ip.getHostAddress());

}

}

}

if (ips.size() == 1) {

return ips.get(0);

} else {

for (String ipa : ips) {

if (!"127.0.0.1".equals(ipa)) {

return ipa;

}

}

}

return MacAddress.find();

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。