使用 istio 为工作负载注入 sidecar 后,envoy 会代理工作负载的所有网络请求,导致工作负载收到的流量来自 envoy 的转发,因此工作负载看到的客户端 IP 是 envoy 的,默认是 127006 ,不是真实的客户端地址。
某些 app 是需要获取到真实客户端地址的,比如黑白名单、地理位置判断等等。
早期的 istio 版本是比较难解决的,但新版本中已经很容易解决,本文中的 istio 是 1112 版本,只需要使用下面的 >function getClientIp(req) {
var ipAddress;
var forwardedIpsStr = reqheader('x-forwarded-for');
if (forwardedIpsStr) {
var forwardedIps = forwardedIpsStrsplit(',');
ipAddress = forwardedIps[0];
}
if (!ipAddress) {
ipAddress = reqconnectionremoteAddress;
}
return ipAddress;
};
如何用js或者jquery获取客户端的IP地址:
$getJSON(">
IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。目前还有些ip代理软件,但大部分都收费。
IP地址类型;
公有地址:
公有地址(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。
私有地址:
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
以下列出留用的内部私有地址:
A类 10000--10255255255
B类 1721600--17231255255
C类 19216800--192168255255
以上就是关于使用 istio 后如何获取客户端真实 IP全部的内容,包括:使用 istio 后如何获取客户端真实 IP、Nodejs能获取到用户的IP地址吗、js或jquery获取浏览器端IP地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)