2023亲测可用JS 获取电脑本地IP 和 电脑网络IP(外网IP|公网IP)

Posted smart_dream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2023亲测可用JS 获取电脑本地IP 和 电脑网络IP(外网IP|公网IP)相关的知识,希望对你有一定的参考价值。

1、了解:电脑本地的IP地址(内网IP)和电脑本机在网络上的IP地址(外网IP|公网IP)

在运行窗口输入“cmd”,在弹出的界面里输入“ipconfig/all”。弹出的数据中,IPv4地址,就是电脑本地的IP地址。

电脑本地的IP地址,实际上是由路由器分配的,大多数家庭路由器都会默认开启DHCP功能,这个IP地址可能会发生变动。如果用户需要查询电脑本机在网络上的IP地址,就需要使用其他方法来查询。

最简单的方法是在搜索软件内输入“本机IP地址”。本机IP地址是用户电脑暴露在网络中的IP地址。


2、JS 获取电脑本地的IP地址:192.168.1.80

function getIP(callback) 
  let recode = ;
  let RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  if (!RTCPeerConnection) 
    let win = iframe.contentWindow;
    RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection;
  
  //创建实例,生成连接
  let pc = new RTCPeerConnection();
  // 匹配字符串中符合ip地址的字段
  function handleCandidate(candidate) 
    let ip_regexp = /([0-9]1,3(\\.[0-9]1,3)3|([a-f0-9]1,4((:[a-f0-9]1,4)7|:+[a-f0-9]1,4)6))/;
    let ip_isMatch = candidate.match(ip_regexp)[1];
    if (!recode[ip_isMatch]) 
      callback(ip_isMatch);
      recode[ip_isMatch] = true;
    
  
  //监听icecandidate事件
  pc.onicecandidate = (ice) => 
    if (ice.candidate) 
      handleCandidate(ice.candidate.candidate);
    
  ;
  //建立一个伪数据的通道
  pc.createDataChannel('');
  pc.createOffer((res) => 
    pc.setLocalDescription(res);
  , () => );

  //延迟,让一切都能完成
  setTimeout(() => 
    let lines = pc.localDescription.sdp.split('\\n');
    lines.forEach(item => 
      if (item.indexOf('a=candidate:') === 0) 
        handleCandidate(item);
      
    )
  , 1000);


getIP(function(ip)
  console.log("得到的本地IP :" + ip); // 192.168.1.80
);

3、通过太平洋网获取电脑在网络上的IP地址 

太平洋文档: 太平洋网络IP地址查询Web接口  (多种方式,可根据自己需要调用)

<body>
 <script>
    function ipJson(ipJson) 
      console.log('获取到的网络IP',ipJson);
      //可以把结果存在window上,方便调用
      window.ipJson=ipJson;
    
  </script>
  <script src="//whois.pconline.com.cn/ipJson.jsp?callback=ipJson" type="text/javascript"></script>
</body>

 访问三方网站链接报403_smart_dream的博客-CSDN博客

 4、通过搜狐三方接口获取的IP:不知道为什么我获取的是127.0.0,放弃了。

有文档说:搜狐的需要连接外网才能获取IP,已连接外网获取的还是127.0.0。

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>  
<script type="text/javascript">  
console.log('搜狐获取到的IP',window.returnCitySN);
</script>

 5、通过ipify网获取电脑在网络上的IP地址 (只有ip地址,没有地区)

官方文档:   ipify - A Simple Public IP Address API

  <script type="application/javascript">
    function getIP(json) 
      console.log('ipify获取到的网络IP',json.ip);
    
  </script>

  <script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>

如何将电脑的IP地址设置为自动获取

参考技术A

windows xp(XP系统)设置自动获取IP地址方法:

    xp系统下右击电脑桌面“网上邻居”图标,选择“属性”,进入“网络连接”窗口。

    在网络连接窗口中找到“本地连接”,右击选择“属性”。在本地连接属性“常规”选项卡中找到“Internet协议”,并双击进入“Internet协议”窗口。

    在“常规”选项卡中选择“自动获得IP地址”和“自动获得DNS服务器地址”,最后点击“确定”按钮。

windows 7 (Win7系统)设置自动获取IP地址方法:

    在win7系统下找到电脑桌面上“网络”图标,右击选择“属性”(或右击电脑右下角任务栏中的“网络连接”状态图标,选择“打开网络和共享中心”),进入“网络和共享中心”窗口。点击左侧栏里“更改适配器设置”菜单。进入“网络连接”窗口。

    在网络连接窗口中,找到“本地连接”,右击本地连接图标选择“属性”。在本地连接属性“网络”选项卡中找到“Internet协议版本4”,并双击进入“Internet协议版本4”窗口。

    在“常规”选项卡中选择“自动获得IP地址”和“自动获得DNS服务器地址”。最后点击“确定”按钮。

以上是关于2023亲测可用JS 获取电脑本地IP 和 电脑网络IP(外网IP|公网IP)的主要内容,如果未能解决你的问题,请参考以下文章

获取本地终端电脑有线和无线的IP

电脑为何不能自动获取IP地址?

如何将电脑的IP地址设置为自动获取

自动获取IP是时。显示本地连接无访问权限

在页面获取本地电脑IP

如何设定虚拟机器和本地电脑的IP不相同?