FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » dns_get_record() with timeout?
Show: Today's Messages :: Unread Messages :: Show Polls :: Message Navigator
| Subscribe to topic | Bookmark topic 
Switch to threaded view of this topic Create a new topic Submit Reply
dns_get_record() with timeout? [message #179657] Fri, 16 November 2012 10:04 Go to next message
Simon is currently offline  Simon
Messages: 29
Registered: February 2011
Karma: 0
Junior Member
add to buddy list
ignore all messages by this user
Hi,

I have a cron job that runs in the background to check various urls
entered by users.

One of the job is to get the ip addresses of the urls given.

For that, the function dns_get_record(),
(http://php.net/manual/en/function.dns-get-record.php), works great.
I can get the IP addresses of the site, or even if the site is
'broken/unavailable', (or just garbage).

The only issue is that there does not really seem to be a way of adding
timeout to the function.

So in some cases, the functions waits for over 1 minute, if not longer,
(I have seen suggestions that the function should not wait more than 20
seconds).

Would anybody know of a fairly generic way of getting the IP addresses
of a site, (ipv4 and ipv6 when available), while protecting myself from
timeouts.

And, (maybe more importantly), does anybody know if it is possible for
the function dns_get_record( ... ) to never return?
Could an invalid domain/string cause the function to misbehave altogether?

Many thanks

Simon
Re: dns_get_record() with timeout? [message #179658 is a reply to message #179657] Fri, 16 November 2012 10:23 Go to previous message
Salvatore is currently offline  Salvatore
Messages: 38
Registered: September 2012
Karma: 0
Member
add to buddy list
ignore all messages by this user
On 2012-11-16, Simon <bad(at)example(dot)com> wrote:
> Would anybody know of a fairly generic way of getting the IP addresses
> of a site, (ipv4 and ipv6 when available), while protecting myself from
> timeouts.

You have to write your own function that will build a UDP packet to
query a DNS server, call the socket_set_timeout() function to set a
timeout value, send the UDP packet, and hope that you get a response.

An example of how you can do this is located at php.net:

http://www.php.net/manual/en/function.gethostbyaddr.php#46869

--
Blah blah bleh...
GCS/CM d(-)@>-- s+:- !a C++$ UBL++++$ L+$ W+++$ w M++ Y++ b++
Quick Reply
Formatting Tools:   
  Switch to threaded view of this topic Create a new topic
Previous Topic: keeping the page content stay in their positions and not merging
Next Topic: why can`t close mysql_connect?
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Fri Dec 15 07:13:52 EST 2017

Total time taken to generate the page: 0.00758 seconds