Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Module to query MS SQL Server Browser

by ig (Vicar)
on May 20, 2015 at 20:02 UTC ( #1127272=perlquestion: print w/replies, xml ) Need Help??

ig has asked for the wisdom of the Perl Monks concerning the following question:

Is there an existing module to query MS SQL Server Browser (ms-sql-m)?

Edit: The protocol (https://msdn.microsoft.com/en-us/library/cc219703.aspx) is simple. As I didn't find a module that provided easy access to it, I wrote my own query.

if($self->{db_server} =~ m/(.*)\\(.*)/) { my $server = $1; my $instance = $2; # This is an instance name # Resolve instance name to a port number my $socket = new IO::Socket::INET( PeerAddr => "$server:1434", Proto => 'udp', ); $socket->send("\x04$instance\x00"); eval { local $SIG{ALRM} = sub { die "Timed out waiting for recv"; + }; alarm 20; # wait up to 20 seconds for a response eval { my $ret = $socket->recv(my $data, 255); unless(defined($ret)) { die "recv error: $!"; } my ($srv_resp, $resp_data) = unpack("C n/a", $data); my $details = { split(/;/, $resp_data) }; $self->{db_host} = $details->{ServerName}; $self->{db_port} = $details->{tcp}; }; alarm 0; die $@ if($@); }; alarm 0; if($@) { die "ERROR: Query SQL Server Browser failed with: $@"; } }

Replies are listed 'Best First'.
Re: Module to query MS SQL Server Browser
by Anonymous Monk on May 21, 2015 at 01:43 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1127272]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2020-09-18 21:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    If at first I donít succeed, I Ö










    Results (113 votes). Check out past polls.

    Notices?