Difference between revisions of "Talk:Nodes.dat file"
From AMule Project FAQ
| (2 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
I have just started aMule and there is an error message at the bottom: | I have just started aMule and there is an error message at the bottom: | ||
| − | + | ''' | |
| − | CFile: Error when opening file (/home/myuser/aMule/nodes.dat): No such file | + | CFile: Error when opening file (/home/myuser/aMule/nodes.dat): No such file''' |
How do I create this file? | How do I create this file? | ||
| + | |||
| + | Hola | ||
| + | ---- | ||
| + | |||
| + | I wrote this Perl version of the unpacker for shits and giggles... | ||
| + | |||
| + | #!/usr/bin/perl | ||
| + | # this code belongs to public domain | ||
| + | |||
| + | use strict; | ||
| + | use warnings; | ||
| + | |||
| + | open (NODES, "<nodes.dat"); | ||
| + | my $count; | ||
| + | read (NODES, $count, 4) or die ("Can't read nodes.dat: $!"); | ||
| + | $count = unpack ('V', $count); | ||
| + | print " idx type ip address udp tcp\n"; | ||
| + | for(1..$count) { | ||
| + | my $data; | ||
| + | my $read = read (NODES, $data, 25); | ||
| + | if ($read==0) { | ||
| + | die ("Counted $count entries but read only $_!"); | ||
| + | } elsif ($read<25) { | ||
| + | die ("Short read for entry $_ (counted $count entries)!"); | ||
| + | } | ||
| + | my ($clientid, $ip1, $ip2, $ip3, $ip4, $udpport, $tcpport, $type) = unpack ('a16CCCCvvC', $data); | ||
| + | my $ipaddr = sprintf("%d.%d.%d.%d", $ip1, $ip2, $ip3, $ip4); | ||
| + | printf ("%4d %4d %-15s %5d %5d\n", $_, $type, $ipaddr, $udpport, $tcpport); | ||
| + | } | ||
| + | |||
| + | --[[User:66.36.128.235|66.36.128.235]] 05:55, 24 March 2008 (CET) | ||
Latest revision as of 05:55, 24 March 2008
I have just started aMule and there is an error message at the bottom: CFile: Error when opening file (/home/myuser/aMule/nodes.dat): No such file
How do I create this file?
Hola
I wrote this Perl version of the unpacker for shits and giggles...
#!/usr/bin/perl
# this code belongs to public domain
use strict;
use warnings;
open (NODES, "<nodes.dat");
my $count;
read (NODES, $count, 4) or die ("Can't read nodes.dat: $!");
$count = unpack ('V', $count);
print " idx type ip address udp tcp\n";
for(1..$count) {
my $data;
my $read = read (NODES, $data, 25);
if ($read==0) {
die ("Counted $count entries but read only $_!");
} elsif ($read<25) {
die ("Short read for entry $_ (counted $count entries)!");
}
my ($clientid, $ip1, $ip2, $ip3, $ip4, $udpport, $tcpport, $type) = unpack ('a16CCCCvvC', $data);
my $ipaddr = sprintf("%d.%d.%d.%d", $ip1, $ip2, $ip3, $ip4);
printf ("%4d %4d %-15s %5d %5d\n", $_, $type, $ipaddr, $udpport, $tcpport);
}
--66.36.128.235 05:55, 24 March 2008 (CET)