在我的 python 应用程序中,浏览器向我的服务器发送请求以获取某些信息。我需要跟踪发出请求的源的 IP。通常,我可以通过此调用获取该信息:
request.headers.get('Remote-Addr')
但是,当我在 HaProxy 这样的负载均衡器后面部署应用程序时,给出的 IP 是负载均衡器的 IP,而不是浏览器的 IP。
当服务器位于负载均衡器后面时,如何获取服务器上浏览器的 IP?
我的案例的另一个问题是我通过 HAProxy 使用从浏览器到我的服务器的 TCP 连接,而不是使用 http。
我目前正在使用Windows 10,如果该平台是Windows 10,则需要输入一些代码.因此,我检查了python文档并阅读了有关平台模块的内容.这是文档说的:
platform.win32_ver(release='', version='', csd='', ptype=''):从Windows注册表获取其他版本信息,并返回一个元组(版本,版本,csd,ptype),参考操作系统版本,版本号,CSD级别(服务包)和操作系统类型(多/单处理器)
当我在Windows 10机器上尝试相同的功能时,我得到了以下内容:
>>> platform.win32_ver(?
('8', '6.2.9200', '', u'Multiprocessor Free')
Run Code Online (Sandbox Code Playgroud)
但是,我期待发布的版本是10而不是8.
那么,任何想法,如果我在这里遗漏了什么?
另外,有人可以告诉我是否有任何其他方法来检测Windows平台是否是Windows 10?
我正在尝试了解以下代码的时间复杂度:
int gcd(int n, int m) {
if (n%m ==0) return m;
if (n < m) swap(n, m);
while (m > 0) {
n = n%m;
swap(n, m);
}
return n;
}
Run Code Online (Sandbox Code Playgroud)
我读到上面代码的复杂度是?(logn)。有人可以向我解释其背后的逻辑吗?
我正面临一个 mysql 查询问题。我需要将数据从一张表复制到另一张表。我正在使用的查询是:
mysql> insert into voucher (code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at) select (code, amount, expire_at, state, driver_id, asset_account_id, created_at, updated_at, creator_id, agent, voucher_batch_id, image, city_id, country_id, serial_number, updater_id, redeemed_at) from voucher_log ;
但是,我在执行此操作时遇到以下错误:
错误 1241 (21000):操作数应包含 1 列