账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    本地服务器是怎样获得客户端的remote address的?
    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的基本原理和方法。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部