前端H5开发,获取内网IP和公网IP

可直接打开,简答便捷,重要的事情说三遍
直接使用!
直接使用!
直接使用!

获取内网IP

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><ul><li>内网ip</li></ul><script>function getIPs(callback) {var ip_dups = {};var RTCPeerConnection = window.RTCPeerConnection ||window.mozRTCPeerConnection ||window.webkitRTCPeerConnection;var useWebKit = !!window.webkitRTCPeerConnection;if (!RTCPeerConnection) {var iframe = document.createElement('iframe');iframe.style.display = 'none';iframe.sandbox = 'allow-same-origin';iframe.addEventListener("DOMNodeInserted", function(e) {e.stopPropagation();}, false);iframe.addEventListener("DOMNodeInsertedIntoDocument", function(e) {e.stopPropagation();}, false);document.body.appendChild(iframe);var win = iframe.contentWindow;RTCPeerConnection = win.RTCPeerConnection ||win.mozRTCPeerConnection ||win.webkitRTCPeerConnection;useWebKit = !!win.webkitRTCPeerConnection;}var mediaConstraints = {optional: [{RtpDataChannels: true}]};var servers = undefined;if (useWebKit)servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};var pc = new RTCPeerConnection(servers, mediaConstraints);function handleCandidate(candidate) {var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/var ip_addr = ip_regex.exec(candidate)[1];if (ip_dups[ip_addr] === undefined)callback(ip_addr);ip_dups[ip_addr] = true;}pc.onicecandidate = function(ice) {if (ice.candidate)handleCandidate(ice.candidate.candidate);};pc.createDataChannel("");pc.createOffer(function(result) {pc.setLocalDescription(result, function() {}, function() {});}, function() {});setTimeout(function() {var lines = pc.localDescription.sdp.split('\n');lines.forEach(function(line) {if (line.indexOf('a=candidate:') === 0)handleCandidate(line);});}, 1000);}getIPs(function(ip) {var li = document.createElement("li");li.textContent = ip;if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/)) {//内网ipdocument.getElementsByTagName("ul")[0].appendChild(li);}});</script></body>
</html>

获取公网IP

通常我们使用搜狐的接口

<!DOCTYPE html>
<html><head><title>公网ip获取</title><meta http-equiv=Content-Type content="text/html; charset=gb2312"></head><body><script src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script type="text/javascript">document.write(returnCitySN["cip"] + ',' + returnCitySN["cname"])</script></body>
</html>

H5如何获取内网IP和公网IP相关推荐

  1. 免费内网穿透3389端口,实现外网远程桌面内网【无需公网IP】

    3389端口,是远程桌面的服务端口.我们可以通过3389端口,用Windows自带的远程桌面连接,来远程连接服务器设备,实现如同操作本地电脑一般的场景. 在同个局域网下,只需要启用"远程桌面 ...

  2. juniper srx解决内网不能telnet公网IP的方法

    juniper srx做好基于目的地址池的映射后外网可以telnet a.a.a.a 22(a.a.a.a为公网IP),但是内网不能telnet a.a.a.a 22.具体解决方法: /*/源地址转换 ...

  3. FRP内网穿透--实现公网ip远程访问内网8080端口

    写在前面,frp内网穿透的教程还挺多的,博主写本博客的目的是作为一个学习记录,如果对你有些许帮助那也算荣幸之至了. 声明: 本博客参考自: [Linux]腾讯云服务器,使用FRP内网穿透,端口映射,远 ...

  4. 使用内网穿透与公网ip的差异对比---金万维

    在IPv4公网IP严重不足的环境下,内网穿透技术越来越多的被人们所使用,二者能够实现的效果是差不多的 但是相较于公网ip来说,使用内网穿透技术的会更加有优势,具体来说: 1. 无需公网ip 物以稀为贵 ...

  5. 内网或者没有公网IP,如何轻松通过公网访问?

    很多网友都面临一个普遍的问题,就是作为家庭宽带用户没有公网IP,即没有IP v4的公网IP,我们天天盼着有一天IP v6能够普及.IP v4一共有2的32次方个地址,约43亿,中国仅为7000多万个, ...

  6. 内网主机通过公网域名解析访问内网服务器,存在什么问题,如何解决?

    发生问题:数据通信无法实现 根本原因:DNS域名解析解析出来是公网地址,就是内网用户向外网用户发送DNS查询,外网DNS会给内网用户回复,如果防火墙上面加了DNS参数,防火墙就会监控DNS回包,如果发 ...

  7. python脚本获取内网,公网ip

    2019独角兽企业重金招聘Python工程师标准>>> 获取内网ip: get_inner_ipaddr.py #!/usr/bin/env python import socket ...

  8. JAVA 获取本机IP(包括 内网IP 和 公网IP)

    Spring 获取客户端请求 IP,详见:https://blog.csdn.net/NRlovestudy/article/details/90900925 本文获取的是 项目所在系统的IP(本地I ...

  9. 将内网映射到公网【无需公网IP】

    有时候我们会以本地电脑做服务器搭建项目,需要将内网映射到公网,让公网用户能够访问到在内网搭建的项目.但由于IPV4资源的枯竭,我们基本不会被分配到公网IP,而是内网IP,无法直接实现公网访问内网. 而 ...

  10. java判断内网ip_Java判断IP地址为内网IP还是公网IP的方法

    本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法.分享给大家供大家参考.具体分析如下: tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8 ...

最新文章

  1. 清华校友三创论坛成功举办,第四届清华校友三创大赛京津冀赛区正式启动
  2. 全卷积神经网络( FCN ):语义分割深度模型先驱
  3. boost::fusion::back_extended_deque用法的测试程序
  4. inux CentOS 7 修改内核启动默认顺序
  5. VBA下载糗事百科图片
  6. 331. 验证二叉树的前序序列化
  7. Android 7.0 Settings Summary 小记
  8. MATLAB gcf图窗保存图像,黑色背景/透明背景
  9. 目标检测 | 解决小目标检测!多尺度方法汇总
  10. 今天是 Java 诞生日,Java 24 岁了!
  11. SAP批量修改物料标准成本
  12. 字号——磅——mm 对应表
  13. Android Studio 卡在Download fastutil-8.4.0-sources jar以及New Module为灰色的问题及解决方法
  14. 树莓派linux iso镜像下载,树莓派(Raspberry Pi)修改系统镜像(img)
  15. iPhone用android充电头,iPhone 6s用什么充电头充电最快?安卓快充头可以混用吗?
  16. 前端开发实习面试题(JavaScript篇)
  17. SpringBoot请求报403 Forbidden
  18. EMC-传导发射之--共振才是EMI问题的最大本质
  19. 考HCIP是否只考背题就能考过?
  20. google服务框架及安装方法以及google play出错解决!!

热门文章

  1. JAVA8安装与配置
  2. Result类的写法
  3. iOS——weak实现原理
  4. Linux命令:ls -l(ll)结果解析
  5. 京东手机评论数据集介绍
  6. 【设计模式】之原型模式详解与应用(五)
  7. c语言中立方和乘法怎么表示什么区别,c语言中的乘方符号是什么?
  8. 【架构设计】简单设计原则(Kent Beck)
  9. 这是最好的企业管理手册
  10. 灵飞经 ①洪武年间 第一章金陵歌舞