有没有一种简单的方法可以使用 Deno.serveHttp 获取 IP 客户端?
Posted
技术标签:
【中文标题】有没有一种简单的方法可以使用 Deno.serveHttp 获取 IP 客户端?【英文标题】:Is there an easy way to get the IP client using Deno.serveHttp? 【发布时间】:2022-01-07 07:16:32 【问题描述】:我在官方存储库中发现了这个问题。但不是直接的方式更多的是来自 Oakserver 的实现。 https://github.com/denoland/deno/discussions/9314
【问题讨论】:
【参考方案1】:您可以将连接地址转换为 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 Deploy 上试试这个;以下示例通过 Deno 标准库使用 Deno.serveHttp
:dash.deno.com/playground/example-client-ip(另请参阅 deno.com/deploy/docs/examples#client-ip)
这是我的 nginx 配置的错。我需要传递这个标题proxy_set_header X-Real-IP $remote_addr;
以上是关于有没有一种简单的方法可以使用 Deno.serveHttp 获取 IP 客户端?的主要内容,如果未能解决你的问题,请参考以下文章
有没有一种简单的方法可以在 PostgreSQL 查询中使用变量? [复制]
有没有一种简单的方法可以将 Ajax 更改为 WebSocket?
有没有一种简单的方法可以使用 Deno.serveHttp 获取 IP 客户端?
有没有一种简单的方法可以使用 OleDbConnection 删除/忽略 Excel 文件中列名上方的行?