【发布时间】:2022-01-07 07:16:32
【问题描述】:
我在官方存储库中发现了这个问题。但不是直接的方式更多的是来自 Oakserver 的实现。 https://github.com/denoland/deno/discussions/9314
【问题讨论】:
标签: javascript ip deno
我在官方存储库中发现了这个问题。但不是直接的方式更多的是来自 Oakserver 的实现。 https://github.com/denoland/deno/discussions/9314
【问题讨论】:
标签: javascript ip deno
您可以将连接地址转换为 Deno.NetAddr 并在那里访问 hostname(如果需要,还可以访问 port):
const server = Deno.listen({ port: 8080 });
for await (const conn of server) {
(async () => {
const httpConn = Deno.serveHttp(conn);
const { hostname } = conn.remoteAddr as Deno.NetAddr;
for await (const requestEvent of httpConn) {
requestEvent.respondWith(new Response(hostname));
}
})();
}
【讨论】:
hostname 始终是 127.0.0.1 和 new Response(hostname) 不会提供更多有用的数据。我在我的笔记本电脑和服务器生产上试过这个。
ipconfig 或其他东西并在本地网络上了解您计算机的IP 地址,那么您可以从其他设备(例如您的手机)加载页面;例如使用 Deno 运行代码,然后(使用您自己计算机的 IP)从您的手机访问 192.168.86.222:8000(或任何您的实际 IP);您应该会看到显示您手机的 IP 地址
Deno.serveHttp:dash.deno.com/playground/example-client-ip(另请参阅 deno.com/deploy/docs/examples#client-ip)
proxy_set_header X-Real-IP $remote_addr;