לרוב, כתובת ה- IP של מבקר האתר משמשת לזיהויו. אך מלבד זאת, באמצעות IP תוכלו לקבל מידע רב נוסף על המבקר - למשל, לגלות את ספק האינטרנט שלו ואת מיקומו הגיאוגרפי. בפועל, סקריפטים PHP בצד השרת משמשים לרוב לחילוץ כתובות IP מכותרות הבקשה שנשלחות על ידי הדפדפן.
זה הכרחי
ידע בסיסי ב- PHP
הוראות
שלב 1
השתמש בפונקציית getenv המובנית של PHP כדי לקרוא כתובות IP ממערך המשתנים של הסביבה העל-גלובלית. במקרה הפשוט ביותר, זה יהיה מספיק לקרוא את המשתנה בשם REMOTE_ADDR. פיסת קוד ה- PHP המתאימה עשויה להיראות כך: $ userIP = getenv ('REMOTE_ADDR');
שלב 2
בנוסף למשתנה REMOTE_ADDR שנשלח בבקשה, בדוק את המשתנים HTTP_VIA ו- HTTP_X_FORWARDED_FOR. אם המבקר משתמש בשרת proxy, יש לרשום את כתובת הביניים בשני המשתנים - גם ב- HTTP_VIA וגם ב- REMOTE_ADDR. במקרה זה, תוכלו לנסות לברר את ה- IP האמיתי של המבקר דרך HTTP_X_FORWARDED_FOR - על שרת ה- proxy להכניס אליו את הכתובת המקורית. עם זאת, זה לא תמיד נעשה, ולמשתמש יש אפשרות לבחור שרת proxy "אטום" שאינו מעביר את ה- IP המקורי של המבקר ששלח את הבקשה. בכל מקרה, עליך להשתמש בכמה שיותר דרכים להשיג את כתובת ה- IP המקורית בקוד שלך על ידי הוספת סימון למשתנה
שלב 3
לשרשר בשורה אחת של קוד PHP בדיקה רציפה של שלושה משתני סביבה, העשויים להכיל את כתובת ה- IP המקורית של המבקר. ניתן לעשות זאת, למשל, כך: $ userIP = getenv ('HTTP_CLIENT_IP') או $ userIP = getenv ('HTTP_X_FORWARDED_FOR') או $ userIP = getenv ('REMOTE_ADDR');
שלב 4
הסר תווים נוספים ו"זבל "אחר מערך ה- IP המתקבל שעשוי להיכנס למשתני סביבה. ניתן לעשות זאת, למשל, באמצעות פונקציות ה- PHP המובנות TRIM ו- preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
שלב 5
שלב את כל הקוד לפונקציה מותאמת אישית כך שתוכל להתייחס אליו במקום לחזור על קווי הסימון והניקוי שוב ושוב בחלקים שונים של סקריפטים ה- PHP שלך. לדוגמה, כך: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') או $ userIP = getenv ('HTTP_X_FORWARDED_FOR') או $ userIP = getenv ('REMOTE_ADDR');
החזר TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}