Thank you.
Code: Select all
#!/usr/bin/perl -w
use Socket;
my $data='';
# NAS UDP port number
my $nas_port = 22081;
# NAS IP address/hostname
my $nas_host = '192.168.1.1';
my $nas_paddr = sockaddr_in($nas_port, inet_aton($nas_host));
# craft request packet
my $msg = chr(0x00).chr(0x00).chr(0x05).chr(0xd3).chr(0x00).chr(0x00).
chr(0x00).chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).
chr(0x80).chr(0xc9).chr(0x6c).chr(0x05).chr(0xff).chr(0xff).
chr(0xff).chr(0xff).chr(0x00).chr(0x00).chr(0x00).chr(0x1c).
chr(0x00).chr(0x00).chr(0x00).chr(0x00);
socket(SOCKET, PF_INET, SOCK_DGRAM, getprotobyname('udp')) || die "socket: $!";
defined(send(SOCKET, $msg, 0, $nas_paddr)) || die "send $nas_host: $!";
$nas_paddr = recv(SOCKET, $data, 1458, 0) || die "recv: $!";
print substr($data, 28)."\n";
exit 0;