سؤال

هذا هو سؤالي الأخير. وبعد الآن متطلباتي الجديدة هو ping بعض مجموعة من الخوادم والتحقق مما إذا كانوا يردون أم لا. أحاول طريقي

system("ping xxx.xx.xx.xx >out.txt");

ثم تحليل Out.txt لسلسلة "انتهت مهلة الطلب". هذا يجري لي نتائج جيدة. ولكن هل هناك أي طريقة أفضل للقيام بها من برنامج C. الطرق غير البرنامجية هي أيضا موضع ترحيب. ولكن في الغالب أريد أن أذهب بواسطة برنامج ج. إذا تم توقيع الطلب، سأرسل رسالة بريد من خلال نفس طريقي بواسطة PHP. شكرا مقدما.

بيئتي: Windows، Tiny C مترجم

هل كانت مفيدة؟

المحلول

طريقة أفضل لالتقاط الإخراج من system() هو للاستخدام popen() في حين أن. بهذه الطريقة يمكنك التقاط إخراج الأمر دون استخدام ملف مؤقت.

طريقة أفضل ل Tinging هي استخدام Microsoft ICMP API (يمكن العثور على صفحة تمهيدية هنا). سيكون من الممكن أن يكون لديك مترجم C لديك القدرة على الاتصال بوظائف API التعسفي Win32. خاصه، Icmpsendecho. هي الوظيفة التي تريدها.

نصائح أخرى

خيار آخر يستخدم مآخذ خام لإرسال / استقبال حزم ICMP بنفسك، أو باستخدام مكتبة مثل ليبنت من أجل هذا. يمكنك بعد ذلك أخذ القياسات الخاصة بك في دقة حبيبية. سوف يستغرق الأمر بعض الوقت والتعود على ذلك. :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top