You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过JavaScript判断访客使用IP地址还是域名访问网站?

如何用JavaScript判断访客是通过IP还是域名访问网站

完全可以通过JavaScript实现这个判断,核心思路是获取访客访问时使用的主机地址,再通过正则校验区分IP地址和域名。

实现步骤

  • 获取主机地址:用window.location.hostname获取访客实际输入的地址主体(比如192.168.0.1或yourdomain.com,自动忽略端口号)
  • 编写IP校验规则:分别针对IPv4和IPv6编写匹配正则,覆盖常见的IP格式
  • 实现判断逻辑:将主机地址与正则匹配,返回判断结果

示例代码

function isAccessedByIP() {
  const hostname = window.location.hostname;
  // IPv4 格式校验正则
  const ipv4Regex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
  // IPv6 格式校验正则(覆盖标准格式、本地回环::1、空地址::)
  const ipv6Regex = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|^::1$|^::$/;
  
  return ipv4Regex.test(hostname) || ipv6Regex.test(hostname);
}

// 调用示例
if (isAccessedByIP()) {
  console.log("访客通过IP地址访问");
} else {
  console.log("访客通过域名访问");
}

注意事项

  • 无需担心类似123.com这类看起来像IP的域名,正则会严格按照IP格式校验,不会误判
  • 即使网站有CDN或反向代理,window.location.hostname获取的是访客实际输入的地址,不受后端转发影响
  • 该方法仅能判断访客当前使用的访问地址类型,无法追溯域名背后对应的IP

内容的提问来源于stack exchange,提问作者itchibahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:00:54