CString strIP="192.168.1.1"
DWORD dwIP
dwIP = inet_addr(strIP)
unsigned char *pIP = (unsigned char*)&dwIP
m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3))
//将IPAddressCtrl中的IP地址获得并转换成CString型
unsigned char *pIP
CString strIP
DWORD dwIP
m_ipAddr.GetAddress(dwIP)
pIP = (unsigned char*)&dwIP
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP)
遗憾js本身获取用户IP结合服务器程序实现功能
jqueryPHP例:
js文件:
$.get('getip.php', function(xhr) {
alert(xhr['ip'])
}, 'json')
//使用ajax式向getip.php发送请求设置接收格式json
php文件getip.php :
<?php
echo json_encode(array(
'ip' =>$_SERVER['REMOTE_ADDR']
))
//返json格式IP址
获取本机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正常显示 )