使用 istio 后如何获取客户端真实 IP

使用 istio 后如何获取客户端真实 IP,第1张

使用 istio 为工作负载注入 sidecar 后,envoy 会代理工作负载的所有网络请求,导致工作负载收到的流量来自 envoy 的转发,因此工作负载看到的客户端 IP 是 envoy 的,默认是 127006 ,不是真实的客户端地址

某些 app 是需要获取到真实客户端地址的,比如黑白名单、地理位置判断等等。

早期的 istio 版本是比较难解决的,但新版本中已经很容易解决,本文中的 istio 是 1112 版本,只需要使用下面的 >

通过“开始”菜单,输入cmd,进入到类Dos页面。(也可以通过快捷键:Windows徽标键+R,然后输入cmd,进入到类Dos页面)

2

然后,在该页面,输入ipconfig,然后点击回测键。

3

最后,出现如图所示的页面,从其中的信息即可知道,该电脑的IP地址为1921681123(局域网IP地址)。

JavaScript 获取客户端计算机硬件及系统信息

通过WMI来实现获取客户端计算机硬件及系统信息:

复制代码代码如下:

function getSysInfo(){

var locator = new ActiveXObject ("WbemScriptingSWbemLocator");

var service = locatorConnectServer("");

//CPU信息

var cpu = new Enumerator (serviceExecQuery("SELECT FROM Win32_Processor"))item();

var cpuType=cpuName,hostName=cpuSystemName;

//内存信息

var memory = new Enumerator (serviceExecQuery("SELECT FROM Win32_PhysicalMemory"));

for (var mem=[],i=0;!memoryatEnd();memorymoveNext()) mem[i++]={cap:memoryitem()Capacity/1024/1024,speed:memoryitem()Speed}

//系统信息

var system=new Enumerator (serviceExecQuery("SELECT FROM Win32_ComputerSystem"))item();

var physicMenCap=Mathceil(systemTotalPhysicalMemory/1024/1024),curUser=systemUserName,cpuCount=systemNumberOfProcessors

return {cpuType:cpuType,cpuCount:cpuCount,hostName:hostName,curUser:curUser,memCap:physicMenCap,mem:mem}

}

代码实现主要包括这几部分:

先通过new ActiveXObject ("WbemScriptingSWbemLocator"); 访问到WbemScripting对象。

通过locatorConnectServer("");连接我们本地电脑(代表本地电脑,当然

也可以访问其他计算机)。

通过serviceExecQuery("SELECT FROM Win32_Processor")这个类似sql的语句(其实系统信息也是存储在计算中一个类似数据库的文件中)获取我们需要的对象的记录集。

通过new Enumerator来创建一个可枚举的对象,下面就可以遍历取信息了。

注意:运行的前提是要修改浏览器安全设置,“允许对未标记为可安全执行的ActiveX

脚本的运行”。

<php

echo "<br>"$_SERVER['PHP_SELF'];#当前正在执行脚本的文件名,与 document root相关

echo "<br>"$_SERVER['argv'];#传递给该脚本的参数。

echo "<br>"$_SERVER['argc']; #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。

echo "<br>"$_SERVER['GATEWAY_INTERFACE']; #服务器使用的 CGI 规范的版本。例如,“CGI/11”。

echo "<br>"$_SERVER['SERVER_NAME']; #当前运行脚本所在服务器主机的名称。

echo "<br>"$_SERVER['SERVER_SOFTWARE']; #服务器标识的字串,在响应请求时的头部中给出。

echo "<br>"$_SERVER['SERVER_PROTOCOL']; #请求页面时通信协议的名称和版本。例如,“>

以上就是关于使用 istio 后如何获取客户端真实 IP全部的内容,包括:使用 istio 后如何获取客户端真实 IP、如何在WebService中获取客户端的IP地址、如何获取客户端的ip地址及电脑名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10094171.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存