Ինչպես պարզել հաճախորդի Ip- ը

Բովանդակություն:

Ինչպես պարզել հաճախորդի Ip- ը
Ինչպես պարզել հաճախորդի Ip- ը

Video: Ինչպես պարզել հաճախորդի Ip- ը

Video: Ինչպես պարզել հաճախորդի Ip- ը
Video: Носки на двух спицах . Носки одним полотном. Мастер класс для новичков. 2024, Ապրիլ
Anonim

Ձեր կայքի այցելուի IP հասցեով դուք կարող եք բավականին շատ բան իմանալ նրա մասին ՝ երկիր, քաղաք, ինտերնետ մատակարարի անուն և էլեկտրոնային հասցե և այլն: Բայց հիմնական արժեքն այն է, որ IP- ն կարող է ծառայել որպես այցելուի ID սերվերային կողմի սցենարների համար: Ստորև նկարագրված է, թե ինչպես կարող եք որոշել IP հասցեն ՝ օգտագործելով PHP:

Ինչպես պարզել հաճախորդի ip- ը
Ինչպես պարզել հաճախորդի ip- ը

Դա անհրաժեշտ է

PHP- ի հիմնական գիտելիքներ

Հրահանգներ

Քայլ 1

Addressննարկչի հարցման սերվերին ուղարկված վերնագրերից IP հասցեն հանելու համար օգտագործեք getenv գործառույթը: Այն կարդում է իրեն նշված արժեքները շրջակա միջավայրի փոփոխականներից: REMOTE_ADDR անունով փոփոխականն օգտագործվում է այցելուի IP հասցեն պահելու համար: Այնուամենայնիվ, հաճախորդը կարող է օգտագործել վստահված սերվեր, որի դեպքում փոփոխականը պարունակում է իր հասցեն, և ոչ թե այն մեկը, որը ցանկանում եք: Կարող եք իմանալ, որ վեբ սերֆերն օգտագործում է միջանկյալ IP ՝ դիտելով HTTP_VIA կոչվող միջավայրի փոփոխականը: Շղթայում ներգրավված վստահված անձի սերվերների բոլոր հասցեները տեղադրվում են դրա մեջ `բաժանված ստորակետներով: Միջանկյալ սերվերները պետք է այցելուի հասցեն տեղադրեն HTTP_X_FORWARDED_FOR անունով փոփոխականում, բայց դա ամբողջովին կախված է վստահված անձի կարգավորումներից: Սա նշանակում է, որ IP հասցեն որոշելու հնարավորինս շատ հնարավորություններ ընդգրկելու համար հարկավոր է ստուգել առնվազն երեք փոփոխականների ՝ REMOTE_ADDR, HTTP_X_FORWARDED_FOR և գերադասելի HTTP_CLIENT_IP բովանդակությունը:

Քայլ 2

Բոլոր երեք փոփոխականությունները ստուգելով կարող եք միավորել PHP կոդի մեկ տողի մեջ, օրինակ ՝ այսպես.

$ ipAddr = getenv ('HTTP_CLIENT_IP') կամ $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') կամ $ ipAddr = getenv ('REMOTE_ADDR');

Այս եղանակով IP հասցեի արժեքը ձեռք բերելով, ցանկալի է այն մաքրել հնարավոր աղավաղումներից և ավելորդ նիշերից: Դրա համար կարող եք օգտագործել կանոնավոր արտահայտություն.

$ ipAddr = լրամշակում (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Քայլ 3

Մնում է կոդի երկու տողերը միավորել մեկ գործառույթի մեջ.

գործառույթ getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') կամ $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') կամ $ ipAddr = getenv ('REMOTE_ADDR');

վերադարձի լրամշակում (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Խորհուրդ ենք տալիս: