获取我自己服务器的 IP 地址和位置,而不是访问用户的

动态遥控

我在服务器上部署了一个 MEAN Stack 应用程序,并使用 Nginx 作为代理服务器来处理请求并重定向到应用程序的特定端口。

例如:用户访问 URLhttp://www.abcxyz.com/并且 Nginx访问实际应用程序 URL http://www.abcxyz.com:1234/,因为我的应用程序在端口 1234 上运行。

现在,出于分析目的,我在 node.js 中编写了一个简短的脚本,用于获取访问我网站的用户的 IP 和位置。我可以看到外部搜索的查询,但我正在获取我自己服务器的 IP 地址和位置。这是为什么?

那是因为Nginx吗?如何解决此问题并获取用户的实际位置?

更新:我添加了一个对我有用的答案。干杯;-)

马科斯·卡萨格兰德

如果您使用快递:

设置非假信任代理值会导致三个重要变化:

req.hostname 的值来自 X-Forwarded-Host 头中设置的值,可以由客户端或代理设置。

X-Forwarded-Proto 可以由反向代理设置来告诉应用程序是 https 还是 http 甚至是无效名称。该值由 req.protocol 反映。

req.ip 和 req.ips 值填充了来自 X-Forwarded-For 的地址列表。

http://expressjs.com/es/guide/behind-proxies.html

app.enable('trust proxy');
app.all("*", (req, res, next) => {

    console.log(req.ip, req.ips);
    //Do whatever you want or call next()       
});

如果您不使用 express,则可以从标头中获取 IP: x-forwarded-for

let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;

如果您没有获得正确的 IP,则需要在 Nginx 中进行正确的设置:

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header

proxy_set_header X-Forwarded-For $remote_addr;

或者将远程用户 IP 附加到任何现有的 X-Forwarded-For 值:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取Twisted服务器的IP地址

来自分类Dev

如何获取服务器的IP地址?

来自分类Dev

获取当前服务器的IP地址

来自分类Dev

从dhcp服务器获取并保留可用的IP地址,以用于我的IP摄像机

来自分类Dev

我如何在python服务器上获取客户端IP地址

来自分类Dev

获取NodeJS服务器上的本地IP地址

来自分类Dev

如何获取当前请求连接服务器的 ip 地址

来自分类Dev

cloudflare是否会更改我的服务器IP地址?

来自分类Dev

尝试登录我的Web服务器的IP地址未知

来自分类Dev

使用服务器ip而不是字母获取Path

来自分类Dev

Django:从开发服务器获取用户IP

来自分类Dev

如何获取用户浏览器的详细信息,IP地址和位置信息?

来自分类Dev

如何在Python中基于IP地址获取服务器的位置

来自分类Dev

路由器设置需要我的IP地址,DNS服务器和网关吗?

来自分类Dev

使用getsockname()获取我自己的IP地址

来自分类Dev

为什么我的python TCP服务器需要绑定到0.0.0.0而不是localhost或IP地址?

来自分类Dev

RE:让 Ubuntu 服务器显示网页 URL 而不是我的 IP 地址

来自分类Dev

Java-从客户端获取服务器的主机名和/或IP地址

来自分类Dev

如何获取客户端的本地IP地址和代理服务器

来自分类Dev

Java-从客户端获取服务器的主机名和/或IP地址

来自分类Dev

使用dnsmasq和hostapd获取DHCP服务器给出的所有IP地址

来自分类Dev

通过IP地址从Web服务器获取URI与主机名的IP不匹配

来自分类Dev

来自服务器IP地址的cpanel访问文件

来自分类Dev

如何使用外部IP地址访问UDP服务器

来自分类Dev

DNS服务器IP地址

来自分类Dev

无法访问具有IP地址的本地服务器,而localhost和127.0.0.1可以

来自分类Dev

无法访问具有IP地址的本地服务器,而localhost和127.0.0.1可以

来自分类Dev

名为用户和所连接服务器IP地址的文件夹的含义是什么?

来自分类Dev

如何通过IP地址或精确的位置获取用户的经度和纬度

Related 相关文章

  1. 1

    获取Twisted服务器的IP地址

  2. 2

    如何获取服务器的IP地址?

  3. 3

    获取当前服务器的IP地址

  4. 4

    从dhcp服务器获取并保留可用的IP地址,以用于我的IP摄像机

  5. 5

    我如何在python服务器上获取客户端IP地址

  6. 6

    获取NodeJS服务器上的本地IP地址

  7. 7

    如何获取当前请求连接服务器的 ip 地址

  8. 8

    cloudflare是否会更改我的服务器IP地址?

  9. 9

    尝试登录我的Web服务器的IP地址未知

  10. 10

    使用服务器ip而不是字母获取Path

  11. 11

    Django:从开发服务器获取用户IP

  12. 12

    如何获取用户浏览器的详细信息,IP地址和位置信息?

  13. 13

    如何在Python中基于IP地址获取服务器的位置

  14. 14

    路由器设置需要我的IP地址,DNS服务器和网关吗?

  15. 15

    使用getsockname()获取我自己的IP地址

  16. 16

    为什么我的python TCP服务器需要绑定到0.0.0.0而不是localhost或IP地址?

  17. 17

    RE:让 Ubuntu 服务器显示网页 URL 而不是我的 IP 地址

  18. 18

    Java-从客户端获取服务器的主机名和/或IP地址

  19. 19

    如何获取客户端的本地IP地址和代理服务器

  20. 20

    Java-从客户端获取服务器的主机名和/或IP地址

  21. 21

    使用dnsmasq和hostapd获取DHCP服务器给出的所有IP地址

  22. 22

    通过IP地址从Web服务器获取URI与主机名的IP不匹配

  23. 23

    来自服务器IP地址的cpanel访问文件

  24. 24

    如何使用外部IP地址访问UDP服务器

  25. 25

    DNS服务器IP地址

  26. 26

    无法访问具有IP地址的本地服务器,而localhost和127.0.0.1可以

  27. 27

    无法访问具有IP地址的本地服务器,而localhost和127.0.0.1可以

  28. 28

    名为用户和所连接服务器IP地址的文件夹的含义是什么?

  29. 29

    如何通过IP地址或精确的位置获取用户的经度和纬度

热门标签

归档