标签: clientip

在Servlet中获取真实的客户端IP

我遇到一个简单问题的麻烦.我会在HTTPServlet中获得真正的客户端IP.

从现在起我用过:

request.getRemoteAddr()
Run Code Online (Sandbox Code Playgroud)

但现在它返回一个虚假的IP.例如:xxx.xxx.xxx.50,但我的IP类似于xxx.xxx.xxx.159.(查看http://whatismyipaddress.com/).

现在我试着用:

request.getHeader("X-Forwarded-For")
Run Code Online (Sandbox Code Playgroud)

它返回NULL.

我还参加了以下课程的探测:

public class IpUtils {

public static final String _255 = "(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)";
public static final Pattern pattern = Pattern.compile("^(?:" + _255 + "\\.){3}" + _255 + "$");

public static String longToIpV4(long longIp) {
    int octet3 = (int) ((longIp >> 24) % 256);
    int octet2 = (int) ((longIp >> 16) % 256);
    int octet1 = (int) ((longIp >> 8) % 256);
    int octet0 = …
Run Code Online (Sandbox Code Playgroud)

java ip servlets clientip

33
推荐指数
3
解决办法
7万
查看次数

使用Ingress保留远程客户端IP

我的目标是使我的Web应用程序(部署在Kubernetes 1.4集群上)看到最初发出HTTP请求的客户端的IP.由于我打算在裸机群集上运行应用程序,因此GCE和service.alpha.kubernetes.io/external-traffic: OnlyLocal1.4中引入的服务注释不适用于我.

寻找替代方案,我发现这个问题建议设置一个Ingress来实现我的目标.所以,我已经设置了Ingress和NginX Ingress控制器.部署进展顺利,我能够通过Ingress地址和端口80连接到我的Web应用程序.但是在日志中我仍然看到集群内部IP(从172.16.0.0/16)范围 - 这意味着外部客户端IP未通过Ingress正确传递.您能否告诉我除了上述内容之外还需要配置什么才能使其正常工作?

我的Ingress'配置:

apiVersion: extensions/v1beta1   
kind: Ingress
metadata:
  name: myWebApp
spec:
  backend:
    serviceName: myWebApp
    servicePort: 8080
Run Code Online (Sandbox Code Playgroud)

clientip kubernetes

7
推荐指数
1
解决办法
2781
查看次数

Nodejs ip 地址结果 ::1

我有一个非常有趣的问题。我有一个网站,我想获取客户端 IP 地址。我找到了一些解决方案,但它们都不起作用。我正在使用 nginx。

我正在使用 expressjs

app.post("/api/test",(req, res)=>{
console.log(req.header('x-forwarded-for')) // result "::1"
console.log(req.connection.remoteAddress) // result "::1"
console.log(req.ip) // result "::1"
})
Run Code Online (Sandbox Code Playgroud)

我尝试使用 3 方 freamwork 但结果相同。

ip-address clientip node.js

7
推荐指数
1
解决办法
4676
查看次数

如何获取客户端/用户的IP地址?

是否可以在不使用像PHP这样的服务器端语言的情况下获取用户的ip地址(我网站的访问者)?

由于我的服务器的负载均衡器,我在使用服务器语言(PHP)时遇到问题.我试过http_x_forwared_for,但也没有检索完美的IP地址.

javascript load-balancing ip-address clientip

5
推荐指数
1
解决办法
4万
查看次数

在NextJS上获取客户端IP并使用SSR

我正在制作一个天气应用程序,我使用 IPIFY 获取客户端 IP,但这会丢失 SSR,或者我使用 SSR 并获取服务器 IP。有人告诉我,我可以使用标头x-forwarded-for,然后使用该值通过 SSR 进行天气 API 调用。

问题是我只使用nextjs,这里没有后端,其次,我不知道如何x-forwarded-for在前端调用或使用来获取客户端IP。

  1. 这可能吗?

  2. 我怎样才能实现它?

我正在使用 vercel 来部署应用程序。

ip clientip server-side-rendering next.js

3
推荐指数
1
解决办法
1万
查看次数

在基于 Flask 的应用程序中获取客户端 IP

我在服务器中部署了 Flask 应用程序。我们正在使用 Nginx。nginx 设置如下:

proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_read_timeout 25s;
proxy_pass http://127.0.0.1:8000;
add_header X-Cache $upstream_cache_status;
Run Code Online (Sandbox Code Playgroud)

在 Flask 设置中我做了以下操作:

app = Flask(__name__, static_folder=None)
app.wsgi_app = ProxyFix(app.wsgi_app)
Run Code Online (Sandbox Code Playgroud)

现在,每当用户访问某个网站时,我都需要一个真实的 IP。目前我正在得到

127.0.0.1

我试过如下:

if request.headers.getlist("X-Forwarded-For"):
    ip = request.environ['HTTP_X_FORWARDED_FOR']
else:
    ip = request.remote_addr
Run Code Online (Sandbox Code Playgroud)

有人可以在这里指导我吗?

nginx clientip flask

2
推荐指数
1
解决办法
4648
查看次数

Angular 5,获取实际网络 IP 地址

嗨,Angular 2/5/6 大师,

我正在尝试这个,以获取我机器的网络 IP 地址。但是我得到了“localhost”作为 IP 地址。例如,我期待这个结果类似于 10.0.5.21。
反正我能得到这个吗?

非常感谢你们!
阿塔尼斯·泽拉图

clientip angular

2
推荐指数
1
解决办法
4320
查看次数

如何从 kubernetes 服务(EKS)中的 HTTP 请求获取客户端 IP

我们将 ms 作为 ALB 入口(ALB 负载均衡器)后面的 pod 运行。我的问题是所有 HTTP 请求日志都显示集群 IP 地址而不是 HTTP 客户端的 IP。有没有其他方法可以让 kubernetes 服务将此信息传递给我的应用服务器以显示客户端 IP 地址?即使尝试使用 java 代码 usig get.remote.address 函数,结果仍然相同。我知道有一种方法“service.spec.externalTrafficPolicy”,但这仅适用于 GCE 广告,不适用于 AWS。任何帮助!!!!!!

clientip kubernetes kubernetes-ingress amazon-eks

0
推荐指数
1
解决办法
410
查看次数