java 怎么获取本机ip地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么获取本机ip地址相关的知识,希望对你有一定的参考价值。

电脑的ip地址怎么查

参考技术A public class TestSystemProperties   
  
    public static void main(String [] args)  
        InetAddress netAddress = getInetAddress();  
        System.out.println("host ip:" + getHostIp(netAddress));  
        System.out.println("host name:" + getHostName(netAddress));  
        Properties properties = System.getProperties();  
        Set<String> set = properties.stringPropertyNames(); //获取java虚拟机和系统的信息。  
        for(String name : set)  
            System.out.println(name + ":" + properties.getProperty(name));  
          
      
  
    public static InetAddress getInetAddress()  
  
        try  
            return InetAddress.getLocalHost();  
        catch(UnknownHostException e)  
            System.out.println("unknown host!");  
          
        return null;  
  
      
  
    public static String getHostIp(InetAddress netAddress)  
        if(null == netAddress)  
            return null;  
          
        String ip = netAddress.getHostAddress(); //get the ip address  
        return ip;  
      
  
    public static String getHostName(InetAddress netAddress)  
        if(null == netAddress)  
            return null;  
          
        String name = netAddress.getHostName(); //get the host address  
        return name;  
      
  

参考技术B InetAddress addr = InetAddress.getLocalHost();
String ip=addr.getHostAddress().toString;//获得本机IP
String address=addr.getHostName().toString;//获得本机名称本回答被提问者和网友采纳

JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法)

参考技术A 获取本机IP地址:

if(typeof window != 'undefined')

    var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;

    if (RTCPeerConnection) (()=>

        var rtc = new RTCPeerConnection()

        rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道

        rtc.createOffer( offerDesc =>  //创建并存储一个sdp数据

        rtc.setLocalDescription(offerDesc)

    , e =>  console.log(e))

    rtc.onicecandidate =(evt) =>  //监听candidate事件

        if (evt.candidate) 

            console.log('evt:',evt.candidate)

            let ip_rule = /([0-9]1,3(\.[0-9]1,3)3|[a-f0-9]1,4(:[a-f0-9]1,4)7)/

            var ip_addr = ip_rule.exec(evt.candidate.candidate)[1]

            console.log('ip_addr:',ip_addr)   //打印获取的IP地址

        

    )()

    elseconsole.log("没有找到")



如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下:

解决方案:

火狐(FireFox) 删除隐藏IP

浏览器输入 about:config

搜索配置 media.peerconnection.enabled 改为false ( 刷新程序,IP正常显示 )

谷歌(Chrome) 删除隐藏IP

浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns

把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

以上是关于java 怎么获取本机ip地址的主要内容,如果未能解决你的问题,请参考以下文章

如何用JAVA获取本机的局域网IP地址?

java如何查询本机ip地址和mac地址

Delphi 7中快速获取本机IP地址

java如何获取本机IP?

JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法)

java获得IP地址