【发布时间】:2018-09-25 20:05:15
【问题描述】:
我正在使用 Crow(C++ 服务器库)并尝试获取客户端的 IP 地址。
我找到了这个答案,Getting the client IP address: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, what else could be useful?,所以我尝试了:
CROW_ROUTE(app, "/mine")([](const crow::request& req, crow::response& res)
{
std::string ip_address = req.get_header_value("REMOTE_ADDR");
res.write(req.get_header_value("HTTP_X_FORWARDED_FOR"));
res.write(req.get_header_value("HTTP_CLIENT_IP"));
res.write(req.get_header_value("HTTP_X_FORWARDED"));
res.write(req.get_header_value("HTTP_X_CLUSTER_CLIENT_IP"));
res.write(req.get_header_value("HTTP_FORWARDED_FOR"));
res.write(req.get_header_value("HTTP_FORWARDED"));
for( auto head : req.headers )
{
res.write(head.first);
res.write(" = ");
res.write(head.second);
res.write( "<br/>" );
}
res.end();
});
但所有这些标题字段都是空白的。是否有其他方法可以获取 IP 地址,或者我的浏览器只是没有发送所需的信息?
【问题讨论】:
-
通常从连接套接字获取。似乎 Crow 提供对它的访问权限有点小。也许您可以add an issue 请求获取客户地址的方法?