js 獲取IP地址 js獲取當前服務器ip



文章插圖
js 獲取IP地址 js獲取當前服務器ip

文章插圖

假如有一個客戶端請求經過了nginx代理轉發以后發送給node.js服務器 , 如果我們想要獲取到客戶端的真實ip地址 , 而不是nginx服務器的地址的話應該怎么做呢?
首先在nginx中配置一下被代理服務器接收到的header信息
proxy_set_header用來配置被代理服務器接收到的header信息 。配置語法如下:
proxy_set_header field value;其中 , field為要設置的變量名 , value為變量的值 。
在這里我們將真實的客戶端ip設置為X-Real-IP , 然后傳給被代理服務器 , 這樣被代理服務器就可以通過header信息來獲取到客戶端真實的ip了 。配置如下:
server {listen 80;server_nameyuanjingyan.com;if ( $host !~* "yuanjingyan.com" ) {return 404;}location / {proxy_pass http://ip:port;proxy_set_header X-Real-IP $remote_addr;}}然后在node.js中獲取客戶端真實ip
在node.js中我們可以通過在nginx中配置的變量X-Real-IP來獲取客戶端真實ip , 代碼如下:
var clientIP = context.req.headers['x-real-ip']; //客戶端ip,獲取的是經過nginx代理后的真實請求ipif(!clientIP){clientIP=context.req.connection.remoteAddress; //客戶端ip , 獲取的是沒有經過nginx代理后的真實請求ip}【js 獲取IP地址 js獲取當前服務器ip】其中要注意的是headers中的“x-real-ip”要寫成小寫的 , 不能寫成“X-Real-IP” , 否則獲取不到數據 。