前端可以拿到一个请求的 ip 地址吗?

2022-05-18 11:13:50 +08:00
 lankunblue

浏览器只暴露了 http 层给用户,ip 是 tcp 层的东西,不太清楚有没有 hack 可以拿到一个请求的服务器 ip 地址,不管是通过插件、普通的网页 js 甚至 wasm

4115 次点击
所在节点    程序员
30 条回复
nulIptr
2022-05-18 11:18:05 +08:00
前端不知道后端知道啊。。。调个后端接口不就好了。不然那种查询本机 ip 页面咋来的
liyanggyang
2022-05-18 11:18:10 +08:00
你想说的是 前端本地 ip 地址?

想要通过 http 接口去拿服务器的 ip ,这没法哦。但是貌似我们可以通过网络请求的过程来看, 目标服务器肯定最后是一个 ip ,那么比如 http 里面写的域名,dns 解析成 ip 嘛。
westoy
2022-05-18 11:20:11 +08:00
直接调用后端返回 IP 反馈啊, 问题这个结果对于客户端是可以篡改的, 你要拿来做严肃的判断或者业务上下文肯定是不行的
tianyou666shen
2022-05-18 11:22:13 +08:00
你想说 js 能不能解析 ip 报文 header 取出其中的 32 位目的 IP 地址 这意思嘛
lankunblue
2022-05-18 11:27:21 +08:00
不是本机 ip 哦,是服务端 ip 。比如 你发出了一个请求 ,地址是 a.xyz.com/api/foo/bar, 怎么拿到这个请求的的响应的服务器 ip
lankunblue
2022-05-18 11:27:56 +08:00
@tianyou666shen 是的,是目的 ip ,不是源 ip 。
lankunblue
2022-05-18 11:28:43 +08:00
@nulIptr 不是本机 ip ,是目的 ip 哦
crs0910
2022-05-18 11:36:56 +08:00
tianyou666shen
2022-05-18 11:38:37 +08:00
需要一个抓包的工具 再配合 js 中的解析库取出 ip 报文 在 IP 协议 header 中找到对应位置的数据
查了下这个包是 js 用来抓取网络报文的
https://github.com/node-pcap/node_pcap
lysS
2022-05-18 11:47:51 +08:00
浏览器里面似乎不能 dns ,nodejs 之类的可以和系统交换的就可以
julyclyde
2022-05-18 11:48:14 +08:00
按说不能。脚本运行的时候,请求已经完成了
villivateur
2022-05-18 11:56:16 +08:00
你可以做一个专门查 dns 记录的后端,然后发个类似 https://dnsquery.com/?domain=example.com
DOLLOR
2022-05-18 12:13:16 +08:00
前端很少有这种需求,我怀疑又是一个 x-y 问题
Kinnice
2022-05-18 12:17:35 +08:00
@villivateur 我来给个真的 http://119.29.29.29/d?dn=a.xyz.com
liangkang1436
2022-05-18 12:42:54 +08:00
碰到反向代理怎么办?
ch2
2022-05-18 12:47:37 +08:00
那个 ip 是在你发送请求之前浏览器就查好的,浏览器没有暴露相关的 api 给 js 查询 dns 对应的 ip
cslive
2022-05-18 14:28:19 +08:00
js 查询 dns 不就行了
bybyte
2022-05-18 16:04:48 +08:00
搭个域名查询的后端服务就行了
rekulas
2022-05-18 16:15:50 +08:00
伪需求 大概率 xy 问题
lankunblue
2022-05-18 16:48:37 +08:00
@crs0910
@Kinnice
@cslive
@bybyte 我是想知道用户通过浏览器那一次请求的的服务器 ip 是什么,对于一个请求来说只有一个 ip ,这和用户所处的位置有关和用户使用的 dns 服务有关。通过服务端的 dns 查询是实现不了我的目的,正如 stackoverflow 那个回答里说的那样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/853644

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX