gpt4 book ai didi

java - NanoHTTPD:确定请求的来源

转载 作者:行者123 更新时间:2023-12-05 09:23:44 25 4
gpt4 key购买 nike

如何确定发起请求的 IP 地址?我当前的代码:

@Override
public Response serve(String uri, Method method,
Map<String, String> headers, Map<String, String> parms,
Map<String, String> files) {

headers.get("origin"); // my current workaround
};

但是任何客户端都可以修改或删除请求 header 。因此,这不是获取该信息的正确方法。在 ASP.NET MVC3 中,这可以通过 Request.UserHostAddress 实现。

最佳答案

现在,NanoHTTPD 不公开原始套接字。有一个添加“getSocket()”或类似 session 类的请求,这将允许询问 IP 地址并解决您正在寻找的问题。给我几天的时间来整理代码并回来查看,我们应该让您上路!

[编辑]

在你的“serve()”方法中,如果你调用

Map<String, String> headers = session.getHeaders();

然后,在 map 中寻找“remote-addr”或“http-client-ip”,你应该有你需要的东西。即,在服务器套接字上调用“getInetAddress()”的结果(根据 Java 文档,它是“此套接字连接到的远程 IP 地址”)。请注意,如果这些 header 不存在于 map 中,则可能是因为您使用的是旧版本的代码。 2.0.5 版今天发布,它们肯定存在。

关于java - NanoHTTPD:确定请求的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19330259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com