তাদের ইউআইডি দেওয়া ব্যবহারকারীর আইপি ঠিকানাটি সন্ধান করবেন?


8

আমি রাশিয়ান মাল্টিপ্লেয়ার কার্ড গেমের সাথে ড্রুপাল 7 ওয়েব সাইট চালাচ্ছি এবং প্রতি 4-5 দিন কিছু বিরক্তিকর খেলোয়াড়কে ব্লক করতে হয়।

দ্রুপালের আগে আমি পিএইচপিবিবি ৩ ব্যবহার করছিলাম these এই ব্যক্তিরা যখন কোনও ছোট শহর / গ্রাম থেকে আসতেন আমি কেবল তাদের আইপি-নেটওয়ার্কটি ফায়ারওয়াল বিধিগুলিতে যুক্ত করতাম, যাতে তারা একটি নতুন মেইল ​​ঠিকানা দিয়ে পুনরায় নিবন্ধন করতে না পারে। এটি আমার ক্ষেত্রে ভাল কাজ করেছে এবং আমার প্রশ্ন এই নীতি সম্পর্কে নয়।

আমার সমস্যাটি হ'ল দ্রুপাল সহ, আমি কোনও ব্যবহারকারীর আইডি দ্বারা ব্যবহৃত সর্বশেষ আইপি ঠিকানাটি খুঁজে পাচ্ছি না। অর্থাৎ অপব্যবহারকারীটি অন্য ব্যবহারকারীদের দ্বারা আমার কাছে জানানো হয়েছে এবং আমি তার ইউআইডি জানি, তবে আমি লগগুলিতে তার আইপি ঠিকানাটি পাই না, কারণ:

  1. আমি সিসলগ-লগিং সক্ষম করেছি এবং / var / লগ / মেসেজে ড্রুপাল বার্তাগুলি দেখতে পেয়েছি তবে ব্যবহারকারীর লগ ইন সম্পর্কে খুব কমই কোনও বার্তা পাওয়া যায়, সম্ভবত সেশনগুলি ডিফল্টরূপে দীর্ঘ, এবং আমি এটি এইভাবেই রাখতে চাই ব্যবহারকারী আরাম।

  2. আমি "ডাটাবেস লগিং" সক্ষম করে ফেলেছি তবে এটি কোথায় দেখতে হবে তা জানি না (কোন ডাটাবেস সারণী)।

উত্তর:


9

আপনার যদি পরিসংখ্যান মডিউল সক্ষম করা থাকে তবে "অ্যাকসেলগ" টেবিলটিতে আপনার সমস্ত দর্শকদের জন্য আইপি রয়েছে।

SELECT hostname FROM accesslog WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

যদি আপনার কাছে পরিসংখ্যান সক্ষম করা না থাকে তবে আমি আপনাকে এই ফলাফলটি ছাড়ার পরামর্শ দিচ্ছি, এমনকি এটির ফলাফলের জন্য, কারণ এটি সক্ষম করার ফলে মারাত্মক পারফরম্যান্স-জরিমানার কারণ হয়।

সেক্ষেত্রে আপনি sessionsটেবিলটি ব্যবহার করতে পারেন :

SELECT hostname FROM sessions WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

প্রথমটির ওপরের প্রথমটির সুবিধাটি হ'ল প্রথমটি সর্বদা আপনাকে সর্বশেষতম হোস্টনামটি দেখায়, তবে পরবর্তীটি সর্বদা আপ টু ডেট না থাকে।


সত্য, সেশন টেবিলের আইপি ঠিকানাও রয়েছে। আমি সেখানে কিছু ব্যবহারকারীকেও খুঁজে পাচ্ছি না। এটা আমার ভুল হতে পারে। আমি আপনার উত্তরটি গ্রহণ করব এবং সিসলগ এবং ডাটাবেস পরিসংখ্যান মডিউলগুলি অক্ষম করব, কারণ সেগুলি আমার পক্ষে খুব বেশি কার্যকর ছিল না।
আলেকজান্ডার ফারবার

যে ব্যবহারকারীরা কিছুক্ষণের জন্য লগইন করেননি তাদের একটি অধিবেশন না থাকলেও তারা খুঁজে পাবেন না। যেমনটি আমি বলেছি "উত্তরোত্তর সর্বদা আপ টু ডেট থাকবে না", অর্থ: এটিতে সমস্ত ব্যবহারকারী নাও থাকতে পারে।
বার্কগুলি

5

যতদূর আমি জানি, দ্রুপাল তাদের ব্যবহারকারী প্রোফাইলে ব্যবহারকারীদের দ্বারা ব্যবহৃত আইপি রিপোর্ট করে না। আপনি একটি কাস্টম মডিউল তৈরি করতে পারেন, ব্যবহারকারীর দ্বারা ব্যবহৃত আইপি যাচাই করতে পারেন এবং এটি আপনার নিজস্ব ডাটাবেস টেবিলে রেকর্ড করতে পারেন; তারপরে আপনি এটি ব্যবহারকারীর প্রোফাইলে, সঠিক অনুমতি প্রাপ্ত ব্যবহারকারীদের (উদাহরণস্বরূপ, ব্যবহারকারীদের প্রশাসনের অনুমতি প্রাপ্ত ব্যবহারকারীদের) দেখাতে পারেন।

আপনার যে ফাংশনটি প্রয়োজন তা হ'ল আইপি_ড্রেস () , যা আপনি হুক_উজার_লগিন () প্রয়োগের ক্ষেত্রে ব্যবহার করতে পারেন । হুক_উজার_ভিউ () প্রয়োগ করে , আপনি তারপরে সঠিক অনুমতি নিয়ে ব্যবহারকারীদের কাছে এ জাতীয় তথ্য প্রদর্শন করতে পারেন।


আপনাকে ধন্যবাদ, তবে তারপরে আমার এখনকার মতো একই সমস্যা হবে: ব্যবহারকারীরা খুব কমই লগইন করে, যেমনটি আমি সিসলগে দেখতে পাচ্ছি। এবং যখন ব্যবহারকারী কোনও লগ ইন করে (তার পাসওয়ার্ড প্রবেশ করে) তখনই হুক_উসার_লগিন () বলা হয়।
আলেকজান্ডার ফারবার

আপনি তাদের লগ ইন করতে বাধ্য করতে পারেন; আপনি যদি সেশন টেবিলটি খালি করেন তবে ব্যবহারকারীদের আবার লগ ইন করা উচিত।
কিমলালুনো

3

আপনি যদি ডাটাবেস লগিং মডিউল ব্যবহার করছেন, দ্রুপাল hostnameকলামের অধীনে, ওয়াচডগ টেবিলের মধ্যে এই তথ্যগুলি সঞ্চয় করে । আপনি এই তথ্যটি পেতে কাস্টম ক্যোয়ারী লিখতে পারেন, বা ভিউ ওয়াচডগ মডিউলটি ব্যবহার করতে পারেন (বর্তমানে x.x এর জন্য কেবলমাত্র একটি দেব রিলিজ, সুতরাং দ্রূপাল in এ এটি কতটা ভাল কাজ করে তা আমি নিশ্চিত নই) ভিউতে এই টেবিলটি প্রকাশ করতে।


নাহ, দুর্ভাগ্যক্রমে সিসলগ কোর মডিউলটির মতো নজরদারি টেবিলটিতেও একই সমস্যা রয়েছে: কিছু ব্যবহারকারীর কাছে আমার কাছে আইপি ঠিকানা নেই, কারণ তারা দীর্ঘদিন আগে লগইন করেছিল। সুতরাং আমি কিছু দূষিত ব্যবহারকারীর সম্পর্কে একটি প্রতিবেদন পেয়েছি, আমার ফায়ারওয়াল ড্রপ-বিধিগুলিতে এটি যুক্ত করার জন্য তার আইপিটি অনুসন্ধান করার চেষ্টা করুন, তবে আমি তার আইপি কোথাও খুঁজে পাচ্ছি না।
আলেকজান্ডার ফারবার

দুর্ভাগ্যবশত, ওয়াচডগের জন্য ডিফল্ট সেটিংসটি কেবলমাত্র 1000 বার্তা বজায় রাখতে। একটি সক্রিয় সাইটে, এটি কেবল এক ঘন্টা বা তারও কম সময় চলতে পারে। আপনার সাইটের উপর নির্ভর করে আপনি number নম্বরটি অ্যাডমিন (অ্যাডমিন / কনফিগার / ডেভেলপমেন্ট / লগিং) বাছাই করতে পারেন, বা বিকল্পভাবে কিয়ামলালানো বর্ণনা অনুযায়ী একটি কাস্টম আইপি স্টোরেজ সমাধান তৈরি করতে পারেন।
jedstrom

1

দুটি সাম্প্রতিক মডিউল এটিতে সহায়তা করতে পারে:

ব্যবহারকারী আইপি লগ , যার মধ্যে ভিউজ ইন্টিগ্রেশন এবং আইপি অ্যাড্রেস ম্যানেজার রয়েছে , যার ভিউস ইন্টিগ্রেশন নেই তবে তা ম্যানিফেস্ট, গুহা আপনার ট্রলস, এবং মিসরি - সমস্ত নিষিদ্ধ সম্পর্কিত মডিউলগুলির সাথে একীকরণ করার উদ্দেশ্যে।


-1

সেশন_আইডি () আপনাকে অতিথি বা সদস্য কিনা তা বর্তমান ব্যবহারকারী সেশন-আইডি দেয়।

$result = db_query("SELECT hostname FROM sessions WHERE sid = '".session_id()."'");
$data = db_fetch_object($result );
echo $data->hostname;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.