النتائج 1 إلى 10 من 10

الموضوع: ممكن دالة تتأكد من وجود إتصال انترنت؟

  1. #1
    عضو جديد
    تاريخ التسجيل
    Apr 2010
    المشاركات
    8

    Exclamation ممكن دالة تتأكد من وجود إتصال انترنت؟



    السلام عليكم
    أبحث عن دالة تقوم بالتأكد من أن أتصال الانترنت متوفر على الكمبيوتر .

    بمعنى أخر ...

    لدي صفحة انترنت أطلبها ... هذه الصفحة لا تفتح إلا عند التحقق من وجود إتصال انترنت
    و إلا يتم إلغاء الطلب .

    طبعاً أنا سوف استخدمها على السيرفر المحلي.
    أرجو منكم المساعدة.







  2. #2


    توجد دوال كثيرة تفي بالغرض لكن بطرق إلتوائية ، يمكنك إستخدام الدالة checkdnsrr
    كود PHP:
    $check checkdnsrr('google.com');
    echo 
    $check 'Yes' 'No'







  3. #3
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,516


    ما ذكره خالد هو الاسرع ... أو مجرد فحص اي صورة أو أي شئ (صفحة غوغل مثلاً ) وانتظار الجواب ... كود 200 جيد ... 400 و 404 تعني غير موجود ... لكن المشكلة في انها تأخذ وقت حتى ترجع الكود ...





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  4. #4
    عضو جديد
    تاريخ التسجيل
    Apr 2010
    المشاركات
    8


    أشكر كل من تفاعلو معي ..

    لكن عند تطبيق الكود المذكور يظهر الخطأ التالي:

    Fatal error: Call to undefined function checkdnsrr() in C:\AppServ\www\t\conect.php on line 5

    بحثت عن المشكلة وجدت أن الاصدار لدي php 5.2 و لابد من توفير على الاقل php 5.3

    حملت php 5.3 لكن لم أعرف أن أثبته!!!
    كيف طريقة التثبيت الصحيحة و للعلم أستخدم سيرفر الاباتشي ؟
    أو طريقة أخرى لحل هذه المسألة؟






  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    789


    اخي تقدر تستخدم كلاس curl لعمل ذالك وتقدر ايضاً تحديد زمن معين لعمل timeout اذا لم يجد رد من السيرفر

    كود PHP:
    <?php
    $ch 
    curl_init();
    @
    curl_setopt($ch,CURLOPT_URL,'www.google.com');
    @
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT10);
    @
    curl_setopt($ch,CURLOPT_TIMEOUT10);
    @
    curl_setopt($ch,CURLOPT_RETURNTRANSFER1);
    $output = @curl_exec($ch);
    $info   = @curl_getinfo($ch);
    @
    curl_close($ch);
    echo (
    $info['http_code'] == '200') ? 'OK' 'BAD';
    ?>






    __________________
    متى استعبدتم الناس وقد ولدتهم أمهاتهم أحرار........
    -----------------------------------
    شبكة الشعر الادبيه

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    ^^
    طريقة ممتازة لكن يمكن ان تكون هناك مشكلتين
    1)يمكن ان تكون ال curl غير منصبة اصلا
    2)بالنسبة لجوجل سوف يعمل اعادة تحويل للموقع المحللي
    يعني الكود لن يكون 200 بل 301 - moved permanently

    بالنسبة لدالة ال checkdnserr حسب ما قرأت في الدليل انها موجودة من php4

    هناك دالة اخرى يمكن ان تنفع وهي get_headers

    كود PHP:
    <?php
    $arr 
    get_headers("http://swalif.net");
    echo (
    $arr[0]=="HTTP/1.0 301 Moved Permanently" || $arr[0] == "HTTP/1.1 200 OK")? "ok" "error";
    ?>






    التعديل الأخير تم بواسطة ahmad sadiq ; 05-03-2011 الساعة 11:07 AM

  7. #7


    مشكلة get_headers هي أنها ترجع خطأ إذا لم يوجد الموقع ،
    توجد كما قلت طرق كثيرة و لعل طريقة شادي (مصالحة) قد تكون الطريقة التي لا يوجد بها خطأ ، لكن فيها شيئ من البطء (مثلما قال)

    لكن أكيد توجد طرق كثيرة يمكنك إختيار إحدى هذه الدوال :

    PHP Network Functions





    التعديل الأخير تم بواسطة خالد الحضري ; 05-03-2011 الساعة 12:18 PM

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2008
    المشاركات
    324


    الابسط والاسهل

    كود PHP:

            
    if(site_is_up("www.swalif.net")){
      echo  
    "ok";

             }else{
    echo  
    "bad";

    الفنكشن اسفل الصفحة

    كود PHP:

    function site_is_up($site,$port=80){
    $port $port === NULL 80 $port;
    $fp = @fsockopen(str_replace('http://','',$site), $port$errno$errstr);
    if(
    $fp === false){
    return 
    false;
    }
    fclose($fp);
    return 
    true;








  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2010
    المشاركات
    412


    كود PHP:
    <?
    function isConnected(){
        
    $m exec("ping google.com -n 1",$result,$out);
        return (
    $m=="Ping request could not find host google.com. Please check the name and try again.")?false:true;
    }

    if(
    isConnected()){
    echo 
    "connected";
    }else{
    echo 
    "none";
    }
    ?>
    طريقة أخرى

    كود PHP:
    <?
    function isConnected(){
        return @
    fsockopen("google.com",80)?true:false;
    }

    if(
    isConnected()){
    echo 
    "connected";
    }else{
    echo 
    "none";
    }
    ?>






    التعديل الأخير تم بواسطة ahmadmarafa ; 07-03-2011 الساعة 04:04 PM
    __________________
    إصبر على كيد الحسود فإن صبرك قاتله ...
    أرسل خريطة موقعك لمحركات البحث

  10. #10
    عضو جديد
    تاريخ التسجيل
    Apr 2010
    المشاركات
    8


    آسف على التأخير في الرد لكن يعلم الله ما لدي من أشغالي
    الله يعطيكم العافية يا خوان

    جاري استخدام الحلول المذكورة










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض