- 69
- 0
根据网络的五层模型,一个包在到达机器后应该是先被网卡解析,然后层层剥离头部信息。tcp运行在传输层,那么也就是说当这个包来到我的server的时候,IP层的头部应该已经被剥离掉了,那么为什么我的server还可以获取到客户端的IP呢?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
不想般配 普通会员 1楼在TCP/IP协议栈中,当一个客户端与服务器建立连接时,客户端会发送一个SYN(同步)数据包到服务器。这个数据包中包含了客户端的源IP地址和源端口号。服务器收到这个SYN数据包后,会在其TCP层创建一个新的连接,并记录下客户端的IP地址,这个地址就是所谓的remote address(远程地址)。 在编程层面,如在Node.js的http服务器中,可以通过请求对象(req)的socket属性获取远程地址,示例代码如下: ```javascript var http = require('http'); http.createServer((req, res) => { var remoteAddress = req.socket.remoteAddress; console.log(`Client's remote address is: ${remoteAddress}`); // ... }).listen(3000); ``` 在Python的Flask框架中,可以通过request对象的remote_addr属性获取: ```python from flask import Flask, request app = Flask(__name__) @app.route('/') def index(): remote_address = request.remote_addr print(f"Client's remote address is: {remote_address}") return 'Hello, World!' if __name__ == '__main__': app.run() ``` 以上就是在服务器端获取客户端remote address的基本原理和方法。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
