Ich muss die IP-Adresse des Clients mit meiner Anwendung in der Anfrage von hapijs Knoten ... Wir verwenden pm2 und Nginx für Server, um live zu laufen und wir haben die Anfrage verwendet .info.address, aber es gibt dem Server lokale IP als 127.0.0.1, aber was ich brauche, war die IP des Kunden, der meine Anwendung verwendet zB: 192.xx111 ...bekomme Client-IP-Adresse in Anfrage hapijs für Knoten
Antwort
Ich bekomme immer Client-IP-Adresse mit dieser Funktion:)
return request.headers['x-forwarded-for'] ||
request.connection.remoteAddress ||
request.socket.remoteAddress ||
request.connection.socket.remoteAddress;
Hoffe es hilft.
sorry bro @Sparw Ich habe versucht, diese und die Ergebnisse sind unten angegeben: req.headers ['x-forwarded-for'] => ' undefined ' request.connection.remoteAddress || anfrage.socket.remoteAddress || request.connection.socket.remoteAddress => diese Dinge werfen unter Fehler ** 'Debug: intern, Implementierung, Fehler TypeError: Uncaught Fehler: Kann Eigenschaft' remoteAddress 'von undefined nicht lesen ' ** – sunilsmith
Vielleicht müssen Sie alle ersetzen "Anfrage" von "req"? – Sparw
Im Fall, wenn Sie den Server hinter einem Nginx Proxy-Server ausgeführt werden würden Sie
req.headers['x-real-ip']
sonst kann man
req.info.remoteAddress
ich versuchte dieses bro aber immer noch ** Undefined ** muss ich irgendwelche zusätzlichen Header-Funktion in meinem Ajax hinzufügen, um die IP in meinem Handler oder gibt es eine spezielle Möglichkeit, die IP in req für Hapi.Js zu bekommen, weil alle Die Antworten, die ich surfte, sind meistens für express.js – sunilsmith
Am besten wäre es, Ihre Anfrage/Header/Verbindung Objekte zu trösten und zu sehen, welche alle Eigenschaften verfügbar sind. Anfordern.info funktioniert für hapi, aber Sie möchten vielleicht das gesamte Anfrageobjekt untersuchen, um zu sehen, warum es nicht funktioniert, oder Sie können Ihr Anfrageobjekt hier für alle zur Überprüfung einreichen. –
verwenden verwenden ich die gleiche Stack für meinen hapi laufe Apps mit Nginx und PM2. Das Übertragen von Anfragen über nginx an eine Knoten-App auf demselben Host führt immer zu 127.0.0.1
für die Remote-Adresse, da nginx die Anfrage auf demselben Host weiterleitet.
Lösung: es gibt ein dediziertes Plugin hapi-geo-locate, das die tatsächliche Klienten-IP-Adresse bestimmt, obwohl Sie Ihre APP hinter einem Rückproxy (wie nginx) laufen lassen.
hapi-geo-locate unterstützt verschiedene Proxies und HTTP-Header, also sollten Sie speichern und erhalten Sie die IP des Benutzers mit Ihrer App auf verschiedenen Plattformen.
Hoffe, dass hilft!
Sie sollten die Konfiguration auf dem Reverse-Proxy (nginx) überprüfen und sehen, ob Sie die IP senden und wie Sie es tun.
Zum Beispiel (nginx conf):
server {
listen 0.0.0.0:80;
server_name [your_domain];
root /webroot/[your_domain or webapp name];
access_log /var/log/nginx/[your_domain or webapp name].log;
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:[port assigned to node];
proxy_redirect off;
}
}
In diesem Fall werden Sie die Client-IP über den Header X-Real-IP
bekommen.
So in HapiJS, wo Sie Zugriff auf das request
Objekt haben:
const ip = request.headers['x-real-ip'] || request.info.remoteAddress;
- 1. Rollenbasierte Authentifizierung in HapiJS
- 2. HapiJS Fehlerbehandlung
- 3. HapiJS Serving-Datei
- 4. Knoten Anfrage in Anfrage mit Cookie
- 5. HapiJS - Controller in Routen setzen
- 6. Wie bekomme ich die vollständige URL für eine Anfrage in Hapi
- 7. HapiJS reply wird zweimal
- 8. Anfrage an uClassify API über Knoten Anfrage
- 9. HapiJS globale Pfadpräfix
- 10. hapijs benutzerdefinierte HTTP-Statusnachricht
- 11. Anfrage Abfrage String-Knoten
- 12. Anfrage Rückruf mit Knoten
- 13. Anfrage Knoten Sync
- 14. Http Anfrage mit Knoten?
- 15. Knoten - Einfache XML-API-Anfrage
- 16. HapiJS Start länger Hintergrund Prozess
- 17. Überprüfung der leeren Zeichenfolge in hapijs Joi
- 18. request.auth.session.set (user_info) funktioniert nicht HapiJS
- 19. Konsekutive Post Anfrage Knoten JS
- 20. Iterate Fortsetzung Abfrage Ergebnismenge (Hapijs)
- 21. Knoten JS bekommen Anfrage Körperlänge
- 22. Loading Kind Knoten auf Anfrage in Firebase
- 23. Knoten js Anfrage - leere Körper in Antwort
- 24. Knoten js async/erwarten Anfrage in Funktion
- 25. Ich bekomme keine Option für dumm Knoten in Knoten verwalten Option in Jenkins
- 26. Stream XML-Knoten für Knoten
- 27. Knoten-Mungo, der keine Post-Anfrage speichert
- 28. bekomme den expandierenden Knoten in einer Baumansicht
- 29. Wie bekomme ich die Antwortzeit in Knoten js
- 30. Knoten js senden Post Anfrage mit rohen Anfrage Körper
Mögliche Duplikat [wie ein Benutzer die IP-Adresse in Knoten bestimmen] (http://stackoverflow.com/questions/8107856/ how-to-determining-a-users-IP-Adresse-in-Knoten) – str