Tôi không thể tìm thấy thông số IP của máy khách trên đối tượng khách hàng.Cách lấy địa chỉ IP của khách hàng với thư viện WebSocket (websockets/ws) trong Node.js?
Trả lời
Got này từ in ấn các phím trong đối tượng socket:
> ws._socket.address()
{ port: 8081,
family: 2,
address: '127.0.0.1' }
> ws._socket.remoteAddress
'74.125.224.194'
> ws._socket.remotePort
41435
tôi không có bất kỳ tài liệu vì vậy tôi không chắc chắn như thế nào này được hỗ trợ trên các phiên bản:/
Sau một chút phiền xung quanh cố gắng tìm ra cái nào cung cấp cho địa chỉ IP của client (trình duyệt web của), câu trả lời là:
ws._socket.remoteAddress
Hoặc nếu bạn có quyền truy cập vào req
qua wss.on('connection', (ws, req) => {})
:
req.connection.remoteAddress;
Bạn có thể sử dụng điều này, ví dụ, để GeoIP xác định vị trí người dùng đang kết nối.
Edit:
Nếu bạn đang chạy Node đằng sau một reverse proxy Nginx (hoặc bất kỳ reverse proxy khác cho rằng vấn đề), bạn có thể cần phải sử dụng:
req.headers['x-forwarded-for'] || req.connection.remoteAddress
Một lưu ý về bảo mật: Nếu máy chủ Node của bạn có sẵn trực tiếp cũng như thông qua proxy ngược lại, bạn có thể muốn kiểm tra remoteAddress
trước khi tin tưởng x-forwarded-for
. Địa chỉ từ xa phải là IP của proxy ngược của bạn. Có một cơ hội kỳ quặc mà ai đó có thể gọi trực tiếp đến dịch vụ của bạn và giả mạo x-forwarded-for
.
Chỉ cần được pedantic - chỉnh sửa áp dụng cho tất cả các proxy, không chỉ nginx đảo ngược (rất nhiều người sử dụng haproxy) – UpTheCreek
Hmmm đó là kỳ quặc, khi hiển thị socket.upgradeReq.connection trong giao diện điều khiển, các remoteAddress trường bị ẩn, bất kỳ ý tưởng tại sao? Nó đã cho tôi mãi mãi để tìm IP người dùng. Cảm ơn bạn Chris Nolet! :) –
Thật đáng ngạc nhiên khi tất cả các API web socket này khác nhau rất nhiều. Rất nhiều tiềm năng, nhưng vẫn bị phân mảnh. –
- 1. WICKET: cách lấy địa chỉ ip/địa chỉ của khách hàng
- 2. Cách nhận địa chỉ ip của khách hàng/người dùng?
- 3. cách lấy địa chỉ IP của khách hàng trong lớp tĩnh trong asp.net mvc
- 4. Địa chỉ IP của khách hàng trong ASP.NET (.asmx) webservices
- 5. Cách lấy địa chỉ IP tăng :: asio :: ip :: tcp :: socket?
- 6. Bảo mật WCF bằng địa chỉ IP của khách hàng
- 7. Lấy địa chỉ IP của khách hàng trong GWT và Google App Engine
- 8. Nhận địa chỉ IP của khách hàng ở Sinatra?
- 9. máy chủ trò chuyện với WebSocket + Node.js vs một khách hàng bản địa với XMPP
- 10. Nhận địa chỉ IP của ứng dụng khách trong JSP
- 11. Cách lấy địa chỉ IP của máy khách từ chính SQL Server 2008?
- 12. Cách lấy địa chỉ IP của người dùng bằng .net?
- 13. Cách lấy địa chỉ IP của máy chủ ứng dụng
- 14. Địa chỉ IP "Rác" với dấu hai chấm trong $ _SERVER ['REMOTE_ADDR'] cho một số khách hàng
- 15. Cách lấy địa chỉ IP của máy chủ?
- 16. Nhận địa chỉ IP của khách hàng trong dịch vụ web RemObjects
- 17. Cách nhận IP của khách hàng?
- 18. Cách nhận địa chỉ IP từ xa/khách hàng bằng dịch vụ web RESTful trong java?
- 19. Làm cách nào để lấy địa chỉ vật lý (MAC) của địa chỉ IP bằng C#?
- 20. Làm cách nào để sử dụng giao thức PROXY để nhận địa chỉ IP thực của khách hàng?
- 21. Xác định địa chỉ IP của khách hàng Đằng sau Amazon ELB
- 22. Làm thế nào để xác định địa chỉ IP của khách hàng yêu cầu?
- 23. Nhận địa chỉ IP của khách hàng: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, điều gì khác có thể hữu ích?
- 24. Lấy địa chỉ IP của đầu cuối socket từ xa
- 25. Apache Mina: cách nhận địa chỉ IP từ một khách hàng được kết nối
- 26. Làm cách nào tôi có thể lấy địa chỉ IP từ tiêu đề HTTP trong Java
- 27. Nhận địa chỉ IP của ứng dụng khách Đối với dịch vụ web
- 28. Cách lấy tên máy chủ dựa trên địa chỉ IP?
- 29. Cách lấy địa chỉ ip từ cấu trúc sock trong c?
- 30. Nhận địa chỉ IP của người dùng
websocket._socket.remoteAddress – Grringo