温锦文欧普厨电及净水器总代理 发表于 2024-8-15 01:25:47

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

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

在运行窗口输入“cmd”,在弹出的界面里输入“ipconfig/all”。弹出的数据中,IPv4地点,就是电脑本地的IP地点。
https://i-blog.csdnimg.cn/blog_migrate/3341cb426941843c3b0d07d3fb66d535.png
电脑本地的IP地点,实际上是由路由器分配的,大多数家庭路由器都会默认开启DHCP功能,这个IP地点可能会发生变更。如果用户必要查询电脑本机在网络上的IP地点,就必要使用其他方法来查询。
最简单的方法是在搜刮软件内输入“本机IP地点”。本机IP地点是用户电脑暴露在网络中的IP地点。
https://i-blog.csdnimg.cn/blog_migrate/0586a5b2559bda032a5b2cd59d6bbc56.png
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 = /({1,3}(\.{1,3}){3}|({1,4}((:{1,4}){7}|:+{1,4}){6}))/;
    let ip_isMatch = candidate.match(ip_regexp);
    if (!recode) {
      callback(ip_isMatch);
      recode = 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> https://i-blog.csdnimg.cn/blog_migrate/2163d61508cbfd028a280c070df5de77.png
 访问三方网站链接报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> https://i-blog.csdnimg.cn/blog_migrate/02f1ba6b76f8443d287fa216381f624e.png
https://i-blog.csdnimg.cn/blog_migrate/4047b5db06b8a4480dca1500388c406b.png
https://i-blog.csdnimg.cn/blog_migrate/a1936a2043297e6fe4534ba465318fab.png
 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> https://i-blog.csdnimg.cn/blog_migrate/93dbb0b31f7747e29bbb86edc8bce6ac.png




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【2023亲测可用】JS 获取电脑本地IP 和 电脑网络IP(外网IP|公网IP)