Nie mogę znaleźć parametru IP klienta w obiekcie klienta.Jak uzyskać adres IP klienta za pomocą biblioteki WebSocket (Websockets/ws) w Node.js?
Odpowiedz
Got to drukowanie klucze w obiekcie Gniazdo:
> ws._socket.address()
{ port: 8081,
family: 2,
address: '127.0.0.1' }
> ws._socket.remoteAddress
'74.125.224.194'
> ws._socket.remotePort
41435
nie mam żadnej dokumentacji, więc nie jestem pewien, jak dobrze ta jest obsługiwana w poprzek wersjach:/
Po trochę bawić próbuje dowiedzieć się, który z nich daje adres IP klienta (przeglądarki internetowej), odpowiedź brzmi:
ws._socket.remoteAddress
Lub jeśli masz dostęp do req
poprzez wss.on('connection', (ws, req) => {})
:
req.connection.remoteAddress;
Można to wykorzystać na przykład do GeoIP zlokalizować gdzie użytkownik łączy się z.
Edit:
Jeśli używasz Node za jeden reverse proxy Nginx (lub jakiegokolwiek innego reverse proxy dla tej sprawy), może trzeba użyć:
req.headers['x-forwarded-for'] || req.connection.remoteAddress
Uwaga na w sprawie bezpieczeństwa: Jeśli twój serwer węzłowy jest dostępny bezpośrednio, a także przez odwrotne proxy, możesz sprawdzić remoteAddress
zanim zaufasz x-forwarded-for
. Adres zdalny powinien być adresem IP twojego reverse proxy. Istnieje dziwna szansa, że ktoś może zadzwonić do twojej usługi bezpośrednio i podrobić x-forwarded-for
.
Wystarczy być pedantyczny - edycja dotyczy wszystkich reverse proxy, a nie tylko nginx (wiele osób korzysta HAProxy) – UpTheCreek
Hmmm to jest dziwne, gdy wyświetlanie socket.upgradeReq.connection w konsoli Pole remoteAddress jest ukryte, czy jest jakiś pomysł, dlaczego? Zajęło mi to na zawsze znalezienie IP użytkowników. Dziękuję Chris Nolet! :) –
To szokujące, że wszystkie te interfejsy API różnią się tak bardzo. Tyle potencjału, ale tak rozdrobnionego. –
- 1. Jak uzyskać adres IP klienta?
- 2. Jak mogę uzyskać adres IP klienta łączącego w pliku Node.js?
- 3. Jak uzyskać adres IP klienta i adres IP serwera za pomocą szyn
- 4. WICKET: jak uzyskać adres IP/adres IP klienta
- 5. Jak uzyskać adres IP klienta pulpitu zdalnego?
- 6. Jak uzyskać adres IP klienta/użytkownika?
- 7. Jak określić adres IP za pomocą klienta testowego Django?
- 8. Jak zdobyć adres IP klienta?
- 9. Uzyskaj adres IP za pomocą skryptu akcji?
- 10. Jak uzyskać adres IP klienta w Javie HttpServletRequest
- 11. Jak uzyskać adres IP klienta w grze! framework 2.0?
- 12. Jak mogę uzyskać lokalny adres IP w Node.js?
- 13. Java (Android) Biblioteki klienta WebSocket
- 14. Jak uzyskać adres IP użytkownika za pomocą .net?
- 15. Jak uzyskać adres IP boost :: asio :: ip :: tcp :: socket?
- 16. Jak uzyskać nazwę komputera i adres IP za pomocą VB.NET?
- 17. Jak uzyskać adres zdalny klienta w serwlecie?
- 18. Jak uzyskać adres IP klienta z samego SQL Server 2008?
- 19. Uzyskaj adres IP klienta w Sinatrze?
- 20. Jak mogę uzyskać adres IP klienta z obiektu żądania za pomocą funkcji Restify?
- 21. ServerSocket + klient Socket - jak uzyskać adres IP klienta?
- 22. Uzyskaj aktualny adres IP klienta za zaporą, w języku Java
- 23. jak zdobyć IP klienta za pomocą Express 4.x
- 24. Uzyskaj prawdziwy adres IP klienta w serwecie
- 25. Jak uzyskać adres IP serwera?
- 26. Uzyskaj adres IP klienta w samohostowanym węźle SignalR
- 27. Adres IP klienta w ASP.NET (.asmx) webservices
- 28. Jak uzyskać adres IP z sockaddr
- 29. Jak uzyskać adres IP peera w azocie
- 30. jak uzyskać adres IP użytkownika w mvc
websocket._socket.remoteAddress – Grringo