ብዙውን ጊዜ ፣ የአንድ ጣቢያ ጎብኝ አይፒ አድራሻ እሱን ለመለየት ጥቅም ላይ ይውላል ፡፡ ግን ከዚህ በተጨማሪ አይፒን በመጠቀም ስለ ጎብorው ብዙ ተጨማሪ መረጃዎችን ማግኘት ይችላሉ - ለምሳሌ ፣ የበይነመረብ አቅራቢውን እና ጂኦግራፊያዊ ቦታውን ያግኙ ፡፡ በተግባር ፣ በአገልጋይ-ወገን PHP ስክሪፕቶች በአሳሽ ከተላኩ የጥያቄ ራስጌዎች የአይፒ አድራሻዎችን ለማውጣት አብዛኛውን ጊዜ ያገለግላሉ ፡፡
አስፈላጊ ነው
የፒኤችፒ መሠረታዊ እውቀት
መመሪያዎች
ደረጃ 1
የአይፒ አድራሻዎችን ከሱፐር-ግሎባል አከባቢ ተለዋዋጭ ድርድር ለማንበብ PHP ን አብሮ የተሰራውን የጌትኔቭ ተግባር ይጠቀሙ። በጣም በቀላል ሁኔታ REMOTE_ADDR የተሰየመውን ተለዋዋጭ ለማንበብ በቂ ይሆናል። ተጓዳኝ የፒኤችፒ ኮድ የሚከተለውን ይመስላል-$ userIP = getenv ('REMOTE_ADDR');
ደረጃ 2
በጥያቄው ውስጥ ከተላከው የ REMOTE_ADDR ተለዋዋጭ በተጨማሪ የ HTTP_VIA እና HTTP_X_FORWARDED_FOR ተለዋዋጮችን ይፈትሹ ፡፡ ጎብorው ተኪ አገልጋይን የሚጠቀም ከሆነ መካከለኛ አድራሻው በሁለቱም ተለዋዋጮች መመዝገብ አለበት - በሁለቱም በኤችቲቲፒ_ቪአይ እና በ REMOTE_ADDR ፡፡ በዚህ ጊዜ የጎብorውን እውነተኛ አይፒ በ HTTP_X_FORWARDED_FOR በኩል ለማወቅ መሞከር ይችላሉ - ተኪ አገልጋዩ የመጀመሪያውን አድራሻ በውስጡ ማስገባት አለበት ፡፡ ሆኖም ፣ ይህ ሁልጊዜ አልተከናወነም ፣ እና ተጠቃሚው ጥያቄውን የላከው የጎብorውን የመጀመሪያውን አይፒ የማያስተላልፍ “ግልጽ ያልሆነ” ተኪ አገልጋይ የመምረጥ ዕድል አለው ፡፡ ለማንኛውም የ HTTP_CLIENT_IP ተለዋዋጭ ቼክ በማከል በኮድዎ ውስጥ የመጀመሪያውን የአይፒ አድራሻ ለማግኘት በተቻለ መጠን ብዙ መንገዶችን መጠቀም አለብዎት ፡፡
ደረጃ 3
በአንዱ መስመር PHP ኮድ ውስጥ የሶስት አከባቢ ተለዋዋጮች ቅደም ተከተል ቼክ ያድርጉ ፣ ይህም የጎብorውን የመጀመሪያ IP አድራሻ ሊኖረው ይችላል። ይህ ሊከናወን ይችላል ፣ ለምሳሌ ፣ እንደዚህ
ደረጃ 4
ወደ አከባቢ ተለዋዋጮች ሊገባ ከሚችለው የአይፒ እሴት ተጨማሪ ቁምፊዎችን እና ሌሎች “ቆሻሻዎችን” ያስወግዱ ፡፡ ይህ ሊከናወን ይችላል ፣ ለምሳሌ አብሮ የተሰራውን PHP ተግባራትን በመጠቀም TRIM እና preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1',) $ userIP));
ደረጃ 5
በ PHP የተለያዩ ጽሑፎችዎ ላይ የቼክ እና የማጽዳት መስመሮችን ደጋግመው ከመድገም ይልቅ እሱን ለመጥቀስ እንዲችሉ ሁሉንም ኮዱን ወደ ብጁ ተግባር ያጣምሩ። ለምሳሌ ፣ እንደዚህ ፦ FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') ወይም $ userIPIP = getenv ('HTTP_X_FORWARDED_FOR') ወይም $ userIPIP = getenv ('REMOTE_ADDR');
መመለስ (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}