Pagina SHRA personale, blog-ul frilensera, dezvoltator web în PHP. Aici am împărtăși experiențele și gândurile mele, petrec experimente pe oameni, aduna dovezi intangibile ale propriei sale prostie. Folosind exemplul de cod de pe acest site, acceptați întreaga responsabilitate pentru consecințele utilizării lor, inclusiv sănătatea mintală și interesele părților terțe.
Iată un exemplu de la serverul meu de test locale:
admin.
De obicei, este suficient pentru a solicita $ adresă_ip = $ _SERVER [ „REMOTE_ADDR“], dar, în cazul în care site-ul se află în spatele unui server proxy, este necesar să se facă manipulare mai sofisticate.
Exemplu adresa_ip CMS Drupal:
Funcția adresa_ip () static $ adresa_ip = NULL;
if (! isset ($ adresă_ip)) $ adresă_ip = $ _SERVER [ 'REMOTE_ADDR'];
if (variable_get ( 'reverse_proxy', 0) # 038; # 038; array_key_exists ( „HTTP_X_FORWARDED_FOR“, $ _SERVER)) // În cazul în care se furnizează o serie de cunoscut revers proxy IP-uri, apoi încredere
// antetul xff într-adevăr, dacă solicitarea vine de la unul dintre ei.
$ Reverse_proxy_addresses = variable_get ( 'reverse_proxy_addresses', array ());
if (! reverse_proxy_addresses goale ($) # 038; # 038; in_array ($ adresă_ip, $ reverse_proxy_addresses, TRUE)) // Dacă există mai multe argumente, trebuie să verificăm cel mai mult
// adăugat recent unul, și anume ultima.
$ Ip_address_parts = exploda ( '', $ _SERVER [ 'HTTP_X_FORWARDED_FOR']);
$ Adresa_ip = array_pop (ip_address_parts $);
>
>
>