在浏览器前端 JS,不使用 API 情况下,有没有办法获取域名解析的 IP 。
或者有没有什么浏览器插件可以?而且能在页面里调用的。
1
maocat 2020-08-18 17:34:04 +08:00
让后端在响应头加上 ip
|
4
whypool 2020-08-18 17:56:41 +08:00
不能
|
5
mokeyjay 2020-08-18 18:00:29 +08:00
原生 JS 不行
如果是浏览器扩展的话,那可以,毕竟扩展可以跨域 |
6
maichael 2020-08-18 18:05:15 +08:00
你调后端,让后端去调 DNS 不就好了。
|
7
ik 2020-08-18 18:09:45 +08:00 via iPhone
需求是: 从前端直接获取到访问的 cdn 节点 ip?
|
10
shenyu1996 2020-08-18 18:13:38 +08:00
不能吧 js 在客户端运行,要获取服务器信息 理论上不行
|
12
masker 2020-08-18 18:33:52 +08:00 via Android
术业有专攻。 请用相应的工具做相应的事。
再者,请 Google 。 |
13
vicsun2020 2020-08-18 18:50:51 +08:00 via iPhone
不请求无解啊,至少需要问 dns 吧
|
14
falcon05 2020-08-18 18:53:02 +08:00 via iPhone
不能
|
15
wunonglin 2020-08-18 19:02:57 +08:00
用 DNS over HTTPs 就行
```js await fetch('https://dns.alidns.com/resolve?name=www.taobao.com.&type=1') ``` |
16
zsdroid 2020-08-18 19:06:11 +08:00
你以为 js 是万能的?
|
17
sunjourney 2020-08-18 21:36:25 +08:00
为什么后端不可控,就是要让后端可控啊
|
18
JustSong 2020-08-18 22:19:02 +08:00 via Android
你还是直接说你要拿来干嘛吧
|
19
x66 2020-08-18 22:29:18 +08:00 2
|
20
chinvo 2020-08-18 22:32:06 +08:00 via iPhone
如果要知道后端去了哪个 CDN 节点,建议在 CDN 上返回 via 头
|
21
cydian 2020-08-19 00:00:36 +08:00 1
@wunonglin 这样还是通过阿里的服务器获取 IP 了
楼主想要获取本机解析的 IP,对于同一域名不同地域解析不同的 IP 的时候,这个方法就不行。 回答楼主问题: 1.不改变后端,不改变浏览器安全设置,不使用扩展,答案:不能 2.后端或者 CDN 头部配合,头部添加响应 IP,即可拿到本机解析的 IP 3.使用 15 楼的方案,无需改变后端,但同一域名解析多个 IP 无解 4.使用浏览器扩展,用户上手难,不建议,但使用浏览器扩展可玩性极高 |
22
cydian 2020-08-19 00:04:14 +08:00
19 楼的方案
dns.resolve() 兼容性问题 |
23
lein 2020-08-19 10:41:57 +08:00 1
需要更底层的协议和接口,JS 里面的 XMLHttpRequest 肯定是不行了,试试去 WebRTC 里面找找能不能有解决方案。
|
24
tydl 2020-08-19 14:54:13 +08:00
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript"> document.write(returnCitySN["cip"]+','+returnCitySN["cname"]) </script> |
26
shenyuzhi 2020-08-19 21:47:01 +08:00 via iPhone
浏览器没有给 js 提供这种 api,只能调第三方接口。
|
27
u823tg 2020-08-28 00:06:13 +08:00
浏览器环境下无解
|