2013-08-26 100 views
1

是否可以獲取向我的節點應用發送UDP請求的客戶端的ip地址?在node.js中使用UDP和dgram獲取遠程ip地址

該應用程序用於我的本地網絡,我想根據地址過濾請求。 當我嘗試在獲取消息事件時使用rinfo-object中提供的地址時,我只是得到路由器地址,這對我沒有多大幫助。

我知道,有可能通過request.headers ['X-Forwarded-For']獲得客戶端的IP地址,當我使用節點網絡庫,但似乎並沒有像這樣的東西在dgram中。

你有什麼想法嗎?

回答

1

可以將rinfo對象用於Event:'message'。該rinfo對象有這個字段:rinfo.address + 「:」 + rinfo.port

請看這裏:http://nodejs.org/api/dgram.html

+0

非常感謝您的回答。我嘗試使用rinfo-object,但它只包含路由器的ip地址。我需要啓動請求的客戶端的地址,就像在net-lib節點中的request.headers ['X-Forwared-For']一樣。 –

+0

以下是來自nodejs.org(http://nodejs.org/api/dgram.html)的引用:「rinfo是一個包含發送者地址信息和數據報字節數的對象。」所以,rinfo應該包含發件人的IP地址。如果發件人坐在NAT後面,那麼它可能會使用路由器的IP地址,在這種情況下,我不確定是否有幫助。 –

+0

是的,似乎我總是得到路由器的IP地址。問題不在我的代碼中,而在於我的網絡配置。謝謝! –