ወደ ጣቢያዎ ጎብ visit በአይፒ አድራሻ ፣ ስለ እሱ ብዙ ማወቅ ይችላሉ - ሀገር ፣ ከተማ ፣ የበይነመረብ አቅራቢው ስም እና ኢሜይል አድራሻ ፣ ወዘተ ፡፡ ግን ዋናው እሴት አይፒው ለአገልጋይ ጎን ስክሪፕቶች የጎብኝዎች መታወቂያ ሆኖ ሊያገለግል ይችላል ፡፡ ፒኤችፒን በመጠቀም የአይፒ አድራሻውን እንዴት መወሰን እንደሚችሉ ከዚህ በታች ተገልጻል ፡፡
አስፈላጊ ነው
የፒኤችፒ መሠረታዊ እውቀት
መመሪያዎች
ደረጃ 1
ወደ አሳሹ ጥያቄ አገልጋይ ከተላኩ ራስጌዎች የአይፒ አድራሻውን ለማውጣት የ getenv ተግባሩን ይጠቀሙ ፡፡ ከአከባቢ ተለዋዋጮች ለእሱ የተገለጹትን እሴቶች ያነባል። የጎብorውን አይፒ አድራሻ ለማከማቸት REMOTE_ADDR የተባለ ተለዋዋጭ ጥቅም ላይ ይውላል ፡፡ ሆኖም ደንበኛው ተኪ አገልጋይን መጠቀም ይችላል ፣ በዚህ ጊዜ ተለዋዋጭው አድራሻውን ይይዛል ፣ እና የሚፈልጉትን አይደለም። ኤችቲቲፒ_ቪአይ ተብሎ የሚጠራውን የአካባቢ ተለዋዋጭ በመመልከት የድር አሳላፊ መካከለኛ IP ን እየተጠቀመ መሆኑን ማወቅ ይችላሉ ፡፡ በሰንሰለቱ ውስጥ የተሳተፉ የተኪ አገልጋዮች ሁሉም አድራሻዎች በእሱ ውስጥ ይቀመጣሉ ፣ በኮማ ተለይተዋል ፡፡ መካከለኛ አገልጋዮች የጎብorውን አድራሻ HTTP_X_FORWARDED_FOR በሚባል ተለዋዋጭ ውስጥ ማስቀመጥ አለባቸው ፣ ግን ይህ ሙሉ በሙሉ በተኪ ቅንብሮች ላይ የተመሠረተ ነው። ይህ ማለት የአይፒ አድራሻውን የመወሰን ብዙ ዕድሎችን ለመሸፈን ቢያንስ የሶስት ተለዋዋጮችን ማለትም 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');
የአይፒ አድራሻውን ዋጋ በዚህ መንገድ ካገኘን ሊከሰቱ ከሚችሉ የተዛቡ እና አላስፈላጊ ገጸ-ባህሪያትን ለማፅዳት ይመከራል ፡፡ ለዚህ መደበኛ አገላለጽን መጠቀም ይችላሉ-
$ ipAddr = ማሳጠር (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
ደረጃ 3
ሁለቱንም የኮድ መስመሮችን ወደ አንድ ተግባር ማዋሃድ ይቀራል
ተግባር getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') ወይም $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ወይም $ ipAddr = getenv ('REMOTE_ADDR');
የመመለሻ ማሳጠር (ቅድመ-ቦታ ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}