প্রায়শই, কোনও সাইট দর্শনার্থীর আইপি ঠিকানাটি তাকে সনাক্ত করতে ব্যবহৃত হয়। তবে এগুলি ছাড়াও, আইপি ব্যবহার করে আপনি দর্শনার্থী সম্পর্কে প্রচুর অতিরিক্ত তথ্য পেতে পারেন - উদাহরণস্বরূপ, তার ইন্টারনেট সরবরাহকারী এবং ভৌগলিক অবস্থানটি সন্ধান করুন। অনুশীলনে, সার্ভার-সাইড পিএইচপি স্ক্রিপ্টগুলি প্রায়শই ব্রাউজারের মাধ্যমে প্রেরিত অনুরোধ শিরোনাম থেকে আইপি ঠিকানাগুলি বের করতে ব্যবহৃত হয়।
এটা জরুরি
পিএইচপি এর প্রাথমিক জ্ঞান
নির্দেশনা
ধাপ 1
সুপারগ্লোবাল এনভায়রনমেন্ট ভেরিয়েবল অ্যারে থেকে আইপি অ্যাড্রেসগুলি পড়তে পিএইচপি-র অন্তর্নির্মিত গেন্তেভ ফাংশনটি ব্যবহার করুন। সবচেয়ে সহজ ক্ষেত্রে, REMOTE_ADDR নামক ভেরিয়েবলটি পড়া যথেষ্ট হবে। পিএইচপি কোডের সাথে সম্পর্কিত টুকরোগুলি দেখতে এইরকম হতে পারে: IP ইউজারআইপি = গেটেনভ ('REMOTE_ADDR');
ধাপ ২
অনুরোধে প্রেরিত REMOTE_ADDR ভেরিয়েবল ছাড়াও, HTTP_VIA এবং HTTP_X_FORWARDED_FOR ভেরিয়েবল পরীক্ষা করে দেখুন। যদি দর্শক কোনও প্রক্সি সার্ভার ব্যবহার করে তবে মধ্যবর্তী ঠিকানা অবশ্যই উভয় ভেরিয়েবলের মধ্যে রেকর্ড করতে হবে - HTTP_VIA এবং REMOTE_ADDR উভয় ক্ষেত্রে। এই ক্ষেত্রে, আপনি HTTP_X_FORWARDED_FOR এর মাধ্যমে দর্শনার্থীর আসল আইপিটি সন্ধান করার চেষ্টা করতে পারেন - প্রক্সি সার্ভারকে অবশ্যই এটির মধ্যে মূল ঠিকানাটি.োকাতে হবে। তবে এটি সর্বদা করা হয় না এবং ব্যবহারকারীর কাছে একটি "অস্বচ্ছ" প্রক্সি সার্ভার নির্বাচন করার সুযোগ রয়েছে যা অনুরোধটি প্রেরণকারী দর্শনার্থীর মূল আইপি সংক্রমণ করে না। যাইহোক, আপনার কোডটিতে মূল আইপি ঠিকানাটি পেতে HTTP_CLIENT_IP ভেরিয়েবলের জন্য একটি চেক যুক্ত করে আপনার যতটা সম্ভব উপায় ব্যবহার করা উচিত।
ধাপ 3
পিএইচপি কোডের এক লাইনে কনক্যাটেনেটে তিনটি পরিবেশের ভেরিয়েবলের ক্রমিক চেক, যাতে দর্শকের মূল আইপি ঠিকানা থাকতে পারে। এটি করা যেতে পারে, উদাহরণস্বরূপ, এটির মতো: IP ইউজারআইপি = গেটেনভ ('HTTP_CLIENT_IP') বা IP ইউজারআইপি = গেটেনভ ('HTTP_X_FORWARDED_FOR') বা $ ইউজারআইপি = গেটেনভ ('REMOTE_ADDR');
পদক্ষেপ 4
পরিবেশগত ভেরিয়েবলের মধ্যে আসতে পারে ফলাফলের আইপি মান থেকে অতিরিক্ত অক্ষর এবং অন্যান্য "আবর্জনা" সরান। এটি করা যেতে পারে, উদাহরণস্বরূপ, অন্তর্নির্মিত পিএইচপি ফাংশন ব্যবহার করে TRIM এবং পূর্ববর্তী স্থান: IP ইউজারআইপি = ট্রিম (প্রিগ_রেপ্লেস ('# ^ ([^,] + +) (,। *)? #', '$ 1', $ ইউজারআইপি));
পদক্ষেপ 5
সমস্ত কোডকে একটি কাস্টম ফাংশনে একত্রিত করুন যাতে আপনি আপনার পিএইচপি স্ক্রিপ্টগুলির বিভিন্ন অংশে বার বার চেক এবং ক্লিনআপ লাইনগুলি পুনরাবৃত্তি করার পরিবর্তে এটিকে উল্লেখ করতে পারেন। উদাহরণস্বরূপ, এটির মতো: ফাংশন getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') বা $ userIP = getenv ('HTTP_X_FORWARDED_FOR') বা IP userIP = getenv ('REMOTE_ADDR');
ট্রিম রিটার্ন করুন (পূর্ববর্তী স্থান ('# ^ ([^,] +) (,। *)? #', '$ 1', $ ইউজারআইপি)));
}