JavaScript 本身并没有直接通过域名获取 IP 的能力,因为浏览器的安全策略限制了 JavaScript 对网络层面的直接访问。但是,可以通过一些间接的方法来实现这一功能。
通过域名获取 IP 可以用于多种场景,例如:
主要有以下几种方法:
XMLHttpRequest
或 fetch
:通过发送 HTTP 请求到目标域名,然后从响应头中获取服务器的 IP 地址。DNS
查询:通过 Web API 进行 DNS 查询,获取域名的 IP 地址。以下是使用 fetch
和 DNS
查询的示例代码:
fetch
async function getIpAddress(domain) {
try {
const response = await fetch(`https://${domain}`);
const ip = response.headers.get('X-Forwarded-For') || response.headers.get('X-Real-IP');
console.log(`IP Address: ${ip}`);
return ip;
} catch (error) {
console.error(`Error fetching IP address: ${error}`);
}
}
getIpAddress('example.com');
DNS
查询async function getIpAddress(domain) {
try {
const response = await fetch(`https://dns.google/resolve?name=${domain}&type=A`);
const data = await response.json();
const ip = data.Answer[0].data;
console.log(`IP Address: ${ip}`);
return ip;
} catch (error) {
console.error(`Error fetching IP address: ${error}`);
}
}
getIpAddress('example.com');
fetch
或 XMLHttpRequest
,可能会遇到跨域问题。可以通过配置服务器端的 CORS 策略来解决。希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云