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

打印 上一主题 下一主题

主题 532|帖子 532|积分 1596

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

  1. function getIP(callback) {
  2.   let recode = {};
  3.   let RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  4.   if (!RTCPeerConnection) {
  5.     let win = iframe.contentWindow;
  6.     RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection;
  7.   }
  8.   //创建实例,生成连接
  9.   let pc = new RTCPeerConnection();
  10.   // 匹配字符串中符合ip地址的字段
  11.   function handleCandidate(candidate) {
  12.     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}))/;
  13.     let ip_isMatch = candidate.match(ip_regexp)[1];
  14.     if (!recode[ip_isMatch]) {
  15.       callback(ip_isMatch);
  16.       recode[ip_isMatch] = true;
  17.     }
  18.   }
  19.   //监听icecandidate事件
  20.   pc.onicecandidate = (ice) => {
  21.     if (ice.candidate) {
  22.       handleCandidate(ice.candidate.candidate);
  23.     }
  24.   };
  25.   //建立一个伪数据的通道
  26.   pc.createDataChannel('');
  27.   pc.createOffer((res) => {
  28.     pc.setLocalDescription(res);
  29.   }, () => {});
  30.   //延迟,让一切都能完成
  31.   setTimeout(() => {
  32.     let lines = pc.localDescription.sdp.split('\n');
  33.     lines.forEach(item => {
  34.       if (item.indexOf('a=candidate:') === 0) {
  35.         handleCandidate(item);
  36.       }
  37.     })
  38.   }, 1000);
  39. }
  40. getIP(function(ip){
  41.   console.log("得到的本地IP :" + ip); // 192.168.1.80
  42. });
复制代码

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

太平洋文档: 太平洋网络IP地点查询Web接口  (多种方式,可根据自己必要调用)
  1. <body>
  2. <script>
  3.     function ipJson(ipJson) {
  4.       console.log('获取到的网络IP',ipJson);
  5.       //可以把结果存在window上,方便调用
  6.       window.ipJson=ipJson;
  7.     }
  8.   </script>
  9.   <script src="//whois.pconline.com.cn/ipJson.jsp?callback=ipJson" type="text/javascript"></script>
  10. </body>
复制代码

 访问三方网站链接报403_smart_dream的博客-CSDN博客
 4、通过搜狐三方接口获取的IP:不知道为什么我获取的是127.0.0,放弃了。

有文档说:搜狐的必要连接外网才能获取IP,已连接外网获取的还是127.0.0。
  1. <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>  
  2. <script type="text/javascript">  
  3. console.log('搜狐获取到的IP',window.returnCitySN);
  4. </script>
复制代码



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

官方文档:   ipify - A Simple Public IP Address API
  1.   <script type="application/javascript">
  2.     function getIP(json) {
  3.       console.log('ipify获取到的网络IP',json.ip);
  4.     }
  5.   </script>
  6.   <script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>
复制代码





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表