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

发布时间:2022-11-17

本文目录一览:

  1. java如何实现对本机的ip地址 网关地址 子网
  2. java 如何验证ip地址
  3. 求助如何通过java来改变本机的IP地址?
  4. 怎样通过java来得到真实的ip地址
  5. 怎样用Java或者 Java Applet 制作一个ip地址的输入框(控件)
  6. 如何用java获取本地ip地址

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
  1. 执行脚本命令的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() {
        List<String> ips = new ArrayList<String>();
        // 返回所有网络接口的一个枚举实例
        Enumeration<?> allNetInterfaces = null;
        try {
            allNetInterfaces = NetworkInterface.getNetworkInterfaces();
        } catch (SocketException e) {
            e.printStackTrace();
        }
        InetAddress ip = null;
        while (allNetInterfaces.hasMoreElements()) {
            NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
            Enumeration<InetAddress> 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();
    }
}