当前位置:   article > 正文

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

js获取当前电脑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

  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>

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/244154
推荐阅读
相关标签
  

闽ICP备14008679号