JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法)

JavaScript015

JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法),第1张

获取本机IP地址: if(typeof window != 'undefined'){     var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection     if (RTCPeerConnection) (()=>{         var rtc = new RTCPeerConnection()         rtc.createDataChannel('') //创建一个可以发送任意数据的数据通道         rtc.createOffer( offerDesc => { //创建并存储一个sdp数据         rtc.setLocalDescription(offerDesc)     }, e => { console.log(e)})     rtc.onicecandidate =(evt) => { //监听candidate事件         if (evt.candidate) {             console.log('evt:',evt.candidate)             let ip_rule = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/             var ip_addr = ip_rule.exec(evt.candidate.candidate)[1]             console.log('ip_addr:',ip_addr)   //打印获取的IP地址         }}     })()     else{console.log("没有找到")} } 如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下: 解决方案: 火狐(FireFox) 删除隐藏IP 浏览器输入 about:config 搜索配置 media.peerconnection.enabled 改为false ( 刷新程序,IP正常显示 ) 谷歌(Chrome) 删除隐藏IP 浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns 把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%

String path = request.getContextPath()

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

</head>

<script type="text/javascript" src="js/jquery/jquery-1.8.1.min.js"></script>

<body>

</body>

<!-- 通过hashemian.com查询本机IP -->

<script type="text/javascript" src="http://scripts.hashemian.com/js/visitorIPHOST.js.php">

</script>

<script type="text/javascript">

var data = $("td:parent")[0].lastChild.data

var ip = data.substring(6,data.length)

alert(ip)

</script>

</html>

os.networkInterfaces()

参考这里:http://nodejs.org/api/os.html#os_os_networkinterfaces

Get a list of network interfaces:

{ lo0:

[ { address: '::1', family: 'IPv6', internal: true },

{ address: 'fe80::1', family: 'IPv6', internal: true },

{ address: '127.0.0.1', family: 'IPv4', internal: true } ],

en1:

[ { address: 'fe80::cabc:c8ff:feef:f996', family: 'IPv6',

internal: false },

{ address: '10.0.1.123', family: 'IPv4', internal: false } ],

vmnet1: [ { address: '10.99.99.254', family: 'IPv4', internal: false } ],

vmnet8: [ { address: '10.88.88.1', family: 'IPv4', internal: false } ],

ppp0: [ { address: '10.2.0.231', family: 'IPv4', internal: false } ] }