خطا در fsockopen

سلام عليكم،

نمي دونم چرا هر چندگاهي پيغام خطاي دستور ذيل ايجاد مي شود؟
15 درصد پس از اجرا خطا دارد!

کد:
$ns = fsockopen("whois.darkoob.com",43);
		Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in ... on line ...

ممنون ميشم اگر كمكي در راه خدا بنماييد :wink:
 
راستي زياد متوجه پارامترهاي اين دستور نيز نشدم:
کد:
fsockopen("whois.darkoob.net",43,$sock_error_no,$sock_error_str,$sock_timeout)

مثلا timeout كه بر چه اساسي است و چه عددي براي آن مناسب است؟
يا اينكه شماره error هاي اين دستور را از كجا ميشود پيدا كرد؟


با تشكر دوباره./.
 

miladmovie

Active Member
خب من این whois.darkoob.com رو تست کردم فکر می کنم ( فکر می کنم ها) مشکل از این سایته باشه
تو قبل از دستور fsockopen یک @ بزار بعدش این باعث می شه که اگر نتوست باز کنه مقدار $ns فالس می شه
اگر هم می تونی از try استفاده کن (http://www.zend.com/tips/tips.php?id=162&single=1)
 

golden

Member
شما از این آدرس whois.darkoob.net برای اینکه یه دامنه را whois کنی استفاده میکنی.
اما این سرور همیشه نمی تونه سریع به شما جواب بده پس برای whois از یه سرور دیگه استفاده کن.
در تابع fsockopen ورودی error no یک متغیره که از طریق call by refrence برای این تابع فرستاده میشه و در واقع اگه که در حین اجرای این تابع error خاصی رخ بده برای شما شماره اون error را در ورودی error no میریزه. همین کار را برای error هم میکنه ولی با این تفاوت که توضیحات error را در این ورودی میریزه. و بعد از اینکه کار تابع تمام شد شما با استفاده از این دو تا می تونید بفهمید که چه خبر شده...
برای time out هم معمولا 30 عدد مناسبیه.
 
البته URL اون فرضي بود.

miladmovie,
بكار بردن @ كه زياد برام جالب نيست! چون حتما پاسخ صحيح و يا پاسخ غلط مشخصي رو از اجراي تابع مي خوام!

,golden
timeout بر حسب ثانيه است؟ اگر اينطوره ، 30 ثانيه چطور زمان خوبيه؟ (يعني 30 ثانيه به تلاش خود ادامه ميده!؟!)


ممنونم.
 

golden

Member
بله بر حسب ثانیه است و این بدین معنا نیست که حتما تلاشش تا 30 ثانیه طول خواهد کشید بلکه اگه بیشتر 30 ثانیه شد دیگه بیخیال میشه.
 

miladmovie

Active Member
خوب اون علامت @ هم اگر درست باشه در متغییرت مقدار true و گرنه false می زاره
فرق اینه که اگر اروری داد نشون نمی ده
 

جدیدترین ارسال ها

بالا