簡體   English   中英

SMPP 服務器 - 如何獲取客戶端(ESME)IP 地址?

[英]SMPP server - How to get the client (ESME's) IP address?

我正在使用https://github.com/farhadi/node-smpp來創建 smpp 服務器。

如果客戶端的 IP 地址不在允許的 ips 列表中,我將禁止連接。 為此,當新連接打開時,我必須檢查憑據是否正常以及 IP 地址是否合適。

問題是如何以及在哪里可以獲得客戶(ESME)的 IP 地址?

  session.on('bind_transceiver', function(pdu) {
    session.pause();
    
    const username = pdu.system_id;
    const password = pdu.password;
    const ipAddress = ''; // WHERE TO GET IT??

    if (credentialsAreOk(username, password, ipAddress)) {
      session.send(pdu.response());
      session.resume();
    } else {
      session.close();
    }
  });

當 ESME 連接到您的服務器時,將創建 session。

The network socket used by this TCP connection, which is a net.Socket class ( https://nodejs.org/api/net.html.net_class_net_socket ), is stored inside this session in the socket property.

const socket = session.socket;

因此,您可以輕松訪問 session 的此套接字屬性並從那里獲取 remoteAddress(客戶端 IP)( https://nodejs.org/api/net.html.net_socket_remoteaddress )。

const ipAddress = session.socket.remoteAddress;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM