前端如何获取IP地址

一、利用JavaScript获取IP地址

1、通过向第三方服务器发送请求获取IP


function getIP(callback) {
  const xhr = new XMLHttpRequest();
  xhr.open("GET", "https://api.ipify.org", true);
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
        callback(xhr.responseText);
    }
  };
  xhr.send();
}
getIP(function(ip){
  console.log(ip);
})

2、通过WebSocket获取IP


const socket = new WebSocket("wss://echo.websocket.org");
socket.onopen = function(event) {
  socket.send("getIP");
};
socket.onmessage = function(event) {
  const ip = event.data;
  console.log(ip);
  socket.close();
};

二、利用WebRTC技术获取IP地址

1、获取局域网IP


function getIPAddresses() {
  const rtcp = new RTCPeerConnection({iceServers:[]});
  const addrs = {};
  rtcp.createDataChannel('', {reliable:false});
  rtcp.onicecandidate = function(evt) {
    if (evt.candidate) {
      const addr = /[0-9]+(?:\.[0-9]+){3}/.exec(evt.candidate.candidate)[0];
      addrs[addr] = true;
      console.log(Object.keys(addrs));
    }
  };
  setTimeout(function() { rtcp.close(); }, 500);
}
getIPAddresses();

2、获取公网IP


let gettingIPInfo = new Promise((resolve, reject)=> {
  window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
  if (!window.RTCPeerConnection) {
    reject("WebRTC not supported");
  }
  let pc = new RTCPeerConnection();
  let ips = [];
  pc.createDataChannel("");
  pc.createOffer((result)=>{
      let sdp = result.sdp;
      let lines = sdp.split("\n");
      lines.forEach ((line,index)=>{
          if(line.indexOf("candidate") !== -1) {
              let regex = /(?{
  console.log(ips);
});

三、利用第三方服务获取IP地址

1、通过ip138.com获取IP


$.ajax({
  url: 'https://api.ip138.com/ip/?ip=&datatype=jsonp&token=您申请的Token',
  type: 'get',
  dataType: 'jsonp',
  success: function (data) {
      console.log(data);
  }
});

2、通过ipify.org获取IP


$.getJSON("https://api.ipify.org?format=json", function(data){
    console.log(data.ip);
});

四、利用后端服务获取IP地址

1、通过Node.js获取IP


const http = require('http');
const server = http.createServer((req, res) => {
  const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
  res.end(ip);
});
server.listen(3000);

2、通过PHP获取IP


echo $_SERVER['REMOTE_ADDR'];

3、通过Java获取IP


String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  ip = request.getRemoteAddr();
}
return ip;

原创文章,作者:AJOBM,如若转载,请注明出处:https://www.506064.com/n/371727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
AJOBM的头像AJOBM
上一篇 2025-04-23 18:08
下一篇 2025-04-23 18:08

相关推荐

  • cmd看地址

    本文将从多个方面详细阐述cmd看地址,包括如何查看本机IP地址、如何查看路由器IP、如何查看DNS服务器IP等等。 一、查看本机IP地址 要查看本机IP地址,首先需要打开cmd窗口…

    编程 2025-04-29
  • 尚硅谷官网地址用法介绍

    尚硅谷是国内一家领先的技术培训机构,提供了众多IT职业的培训,包括Java、Python、大数据、前端、人工智能等方向。其官网地址为http://www.atguigu.com/。…

    编程 2025-04-29
  • Centos7配置静态ip

    本文将详细阐述如何在Centos7系统中配置静态ip。 一、查看网络接口 在配置静态ip之前,我们首先需要查看系统中的网络接口,以确定我们需要配置的网卡是哪一个。 ifconfig…

    编程 2025-04-29
  • Python检测IP连通

    Python是一门强大的编程语言,常用于网络开发、数据分析等领域。IP地址是网络通信的基础,在网络通信中,有时需要检测IP地址是否连通。下面将从多个方面介绍Python检测IP连通…

    编程 2025-04-28
  • Idea2022变更Git地址

    本文将从以下几个方面对Idea2022变更Git地址进行详细阐述: 一、GitHub上修改Git仓库地址 1、登录GitHub,找到需要修改的Git仓库 2、在代码页面点击右上角的…

    编程 2025-04-28
  • Treck TCP/IP Stack 输入验证错误漏洞CVE-2020-11901解析

    本文将对Treck TCP/IP Stack 输入验证错误漏洞CVE-2020-11901进行详细解析,并提供相关代码示例。 一、漏洞背景 Treck TCP/IP Stack是一…

    编程 2025-04-27
  • electron-egg打包后请求地址错误解决方法用法介绍

    本文将从多个方面对electron-egg打包后请求地址错误进行详细阐述,并给出解决方法。 一、electron-egg打包后请求地址错误的表现 在使用 electron-egg …

    编程 2025-04-27
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • Python如何判断IP地址合法性

    IP地址是网络通信的基础,因此判断IP地址合法性是编程中常见的问题。Python作为一门强大的编程语言,提供了多种方法来判断IP地址的合法性。 一、判断IP地址格式是否正确 IP地…

    编程 2025-04-27
  • Python处理“该请求的地址无效”的解决方法

    本文将从以下几个方面为大家详细阐述在python中处理“该请求的地址无效”的解决方法。 一、检查URL地址是否正确 当我们在使用Python发送网络请求时,如果URL地址不正确,就…

    编程 2025-04-27

发表回复

登录后才能评论