আমি এতে হোঁচট খেয়েছি এবং আমি একবার অনুরূপ কিছু করার পরে একটি উত্তর পোস্ট করার সিদ্ধান্ত নিয়েছে।
আমি নিম্নলিখিতগুলি করেছেন:
1. Ping all addresses within given network and subnet (excluding network and broadcast addresses)
2. Wait for response has a timeout so that if device doesn't answer from furthest corner of your WiFi it is considered not present.
3. So we get all IPs on the net that answer to ICMP packets.
4. Then use each detected IP to ask for more and decide which device you like and which one you don't.
আমার ক্ষেত্রে আমার ডিভাইসে একটি HTTP সার্ভার চালু ছিল। সুতরাং আমি কেবলমাত্র 80 পোর্টে মূলত কিছুই করার জন্য HTTP হেড অনুরোধটি প্রেরণ করেছি device
তবে আমি প্রথমে পিং না দিয়ে দ্রুত যেতে পারিনি। এইচটিটিপি টিসিপি এবং অনুরোধটি বড়, তাই ওয়াইফাইয়ের জন্য টাইমআউটগুলি 4 সেকেন্ড হতে হবে। 253 ঠিকানার জন্য এটি করা জাহান্নাম হিসাবে ধীর। তবে আপনার কাছে 253 ডিভাইস (সম্ভবত) আরও কম এইচটিটিপি সার্ভার নেই। (বা আপনার ক্ষেত্রে ফোন)
রাউটার লগ বিবেচনা করা খুব ভাল ধারণা এবং সহজ। এবং সমস্ত pinging চেয়ে দ্রুত। কিছু রাউটার এমনকি তাদের পেতে লগ ইন প্রয়োজন হয় না।
এছাড়াও, আপনার ডিভাইসে ইউপিএনপি সমর্থন আছে কিনা তা পরীক্ষা করে দেখার মতো। যদি এটি হয় তবে আপনি এর উপস্থিতি সনাক্ত করতে ইউপিএনপি ব্যবহার করতে পারেন। এটি সরকারী সমাধান হবে (ইউপিএনপির ইউডিপি সম্প্রচারে শুনছেন)। তবে সমস্ত ডিভাইস এটি সমর্থন করে না। তবে সমস্ত ডিভাইস আইসিএমপি সমর্থন করে না। (তারা অযথা বোমা চালানো চায় না)।
আরও একটি আকর্ষণীয় সম্ভাবনা আছে। আপনি ডিএইচসিপি প্যাকেটগুলির জন্য মাছ দেখতে পারেন এবং কখন রাউটার কোনও নতুন ডিভাইসকে একটি আইপি ঠিকানা দিচ্ছে তা দেখতে পারেন। তবে এটি স্ট্যাটিক আইপি সহ ডিভাইসগুলির জন্য কাজ করবে না। এমনকি তাদের কোনও কিছু প্রয়োজন না হওয়া পর্যন্ত তারা নেটওয়ার্কটিকেও স্পর্শ করবে না। নিজেই ওয়াইফাইয়ের সাথে সংযোগ স্থাপন অন্য স্তরে রয়েছে এবং আপনি যদি স্নিফার হিসাবে কাজ করতে না চান তবে সহজেই সনাক্ত করা যায় না। আমি নিশ্চিত নই যে এটি প্রম্পসিয়াস মোডে নেটওয়ার্ক অ্যাডাপ্টারের সাথে করণীয়যোগ্য কিনা। আমি মনে করি এটির জন্য অতিরিক্ত হার্ডওয়ারের প্রয়োজন হবে।
পাইথনে পিং অর্জনের জন্য, পিং প্রোগ্রামে সাব-প্রসেসিং এবং গতি হারানো ছাড়াই আপনাকে কাঁচা সকেট তৈরি করতে হবে এবং নিজেই আইসিএমপি প্যাকেট তৈরি করতে হবে। এটা কঠিন নয়। ওয়েবে কোথাও এর উদাহরণ রয়েছে। অবশ্যই, এটি পাঠাতে আপনার পিংয়ের মতো রুট অনুমতিও প্রয়োজন। এটি একটি অপূর্ণতা। আপনি যদি সফ্টওয়্যার বিতরণ করেন তবে আপনি ব্যবহারকারীরা এটিকে মূল হিসাবে চালাতে চান এমনটি আশা করতে পারবেন না।