Skip to content
Menu
Leesweb
Leesweb

Så här får du klientens IP-adress med Java

Posted on januari 31, 2022 by admin

i följande handledning visar vi dig hur du kan få klientens IP-adress med servlet-specifikationen. Vi diskuterar vad du kan göra om din klient står bakom en proxy eller gateway. Vi förklarar varför denna IP-adress inte alltid är säker att använda.

klientens IP-adress

i java kan du komma åt klientens IP-adress via Servlets request.getRemoteAddr().

String ipAddress = request.getRemoteAddr();

men detta svar är långt ifrån fullständigt och är ganska komplicerat.

Proxies, Gateways … Pålitlig, Säker?

om ditt program körs på en webbserver som ligger bakom en omvänd proxy eller lastbalanserare, kan den proxyn konfigureras för att injicera den begärda IP-adressen i en förfrågningshuvud. Olika omvända proxyservrar kan injicera olika rubriker. Se dokumentationen för din proxyserver. Vi listade ett par av de mest använda i vårt exempel nedan men det är inte alls en komplett lista.

  • när din klient använder en (framåt) proxy kan den infoga rubriker för att säga vad klientens IP-adresser är. Eller det kanske inte. Och IP-adressen som infogas här kan vara felaktig.
  • det betyder att värdet du får genom att ringa request.getRemoteAddr() är IP-adressen till den omedelbara uppströmskällan för begäran.
  • som vi sa finns det många rubriker för olika proxyer som används, men x-forwareded-for kommer sannolikt att infogas av en proxy.

som en sista anteckning, även om du får en IP-adress antingen från rubriken eller från request.getRemoteAddr() är det inte garanterat att vara klientens IP-adress. T. ex.: om din proxy inte innehåller klientens IP-adress får du IP-adressen till proxy-eller lastbalansern. Om din klient arbetar på ett privat nätverk och ansluter till internet via en nat-gateway, kommer IP-adressen i HTTP-begäran att vara en adress till NAT-servern. Eller till och med för en hacker är det ganska lätt att injicera en rubrik med en annan IP-adress. Så det betyder att du inte på ett tillförlitligt sätt kan ta reda på IP-adressen för systemet som begäran härstammar från.

få klient IP-adress

Varning: Var försiktig om du implementerar säkerhet, eftersom alla dessa rubriker är lätta att förfalska.
private static final String IP_HEADER_CANDIDATES = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED", "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED", "HTTP_VIA", "REMOTE_ADDR" };public static String getClientIpAddress(HttpServletRequest request) { for (String header : IP_HEADER_CANDIDATES) { String ip = request.getHeader(header); if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { return ip; } } return request.getRemoteAddr();}

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Senaste inläggen

  • bloggen singel
  • hur tjänar du mynt på Rita något?
  • hur man kastar en sänke: vänsterhänt och högerhänt
  • hur man ökar dina leptinnivåer
  • hur exporterar du Hotmail-kontakter?
  • bet365 bonuskod: ange registreringskod TMG50 för December 2021
  • Hur man installerar SSL-certifikat på Centos 7
  • hur täta en rostfri diskbänk (ett effektivt sätt)

Arkiv

  • mars 2022
  • februari 2022
  • januari 2022
  • december 2021
  • november 2021

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
©2022 Leesweb | Theme: Wordly by SuperbThemes