Schrift
[thread]7534[/thread]

"Bad file descriptor" aber warum ???



<< >> 8 Einträge, 1 Seite
Gast Gast
 2005-12-08 15:53
#60811 #60811
Ich habe folgendes sub geschrieben zum finden einer IP mittels ifconfig :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sub gen2nfs_sub_ifconfig_ipv4 {

my $ethif = shift;
my $ifconfig = "$IFCONFIG";
my $string = 'inet\saddr:';
local *IFCONFIG;

open (IFCONFIG, "$ifconfig $ethif 2>&1 |") || die ("ERROR (gen2nfs_sub_ifconfig_ipv4): $! $_");

while(<IFCONFIG>) {

# search IP 123.123.123.123
# ddd.ddd.ddd.ddd
# \d = digit
# {1,3} 1,2 or 3 digits

if ( /^.*$string(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ ) {
return "$1";
last;
} else {
die ("ERROR (gen2nfs_sub_ifconfig_ipv4): $! $_");
};
}

close (IFCONFIG);
}


Leider bricht das Programm mit "Bad file descriptor" ab.
Woran kann dies liegen ???

Herzlichen Dank

Denis
esskar
 2005-12-08 15:55
#60812 #60812
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
zeile?
redpantyhose
 2005-12-08 16:05
#60813 #60813
User since
2005-12-08
12 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
Sehr wahrscheinlich hier ???  -->>  open (IFCONFIG, "$ifconfig $ethif 2>&1 |") || die ("ERROR (gen2nfs_sub_ifconfig_ipv4): $! $_");


Folgendes funktioniert (MAC-Adresse mit ifconfig herauskitzeln):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
sub gen2nfs_sub_ifconfig_mac {

my $ethif = shift;
my $ifconfig = "$IFCONFIG";
my $string = 'HWaddr';
local *IFCONFIG;

open (IFCONFIG, "$ifconfig $ethif 2>&1 |") || die ("ERROR (gen2nfs_sub_ifconfig_mac): $! $_");

while(<IFCONFIG>) {

# search MAC 00:00:00:00:00:00
# ww:ww:ww:ww:ww:ww
# \w = word

if ( /^.*$string\s(\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/ ) {
return "$1";
last;
} else {
die ("ERROR (gen2nfs_sub_ifconfig_mac): $! $_" );
};
}

close (IFCONFIG);
}
redpantyhose
 2005-12-08 16:12
#60814 #60814
User since
2005-12-08
12 Artikel
BenutzerIn
[default_avatar]
Aufruf :
Code: (dl )
1
2
3
4
5
6
7
our $IFCONFIG = '/sbin/ifconfig';

my $mac = gen2nfs_sub_ifconfig_mac('eth0');
my $ip = gen2nfs_sub_ifconfig_ipv4('eth0');

print "\n***$mac***\n";
print "\n***$ip***\n";


:p
esskar
 2005-12-08 16:13
#60815 #60815
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
steht denn keine zeilennummer neben dem fehler?
egal
schau dir mal CPAN:Sys::HostIP an
redpantyhose
 2005-12-08 17:21
#60816 #60816
User since
2005-12-08
12 Artikel
BenutzerIn
[default_avatar]
DANKE ;)

Benutze aus Geschwindikeitsgründen direkt den Code von CPAN: Sys::HostIP ...

War aber zu doof } else { war falsch :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sub gen2nfs_sub_ifconfig_ipv4 {

my $ethif = shift;
my $ifconfig = "$IFCONFIG";
my $string = 'inet\saddr:';
local *IFCONFIG;

open (IFCONFIG, "$ifconfig $ethif 2>&1 |") || die ("ERROR:1 (gen2nfs_sub_ifconfig_ipv4): $! $_");

while(<IFCONFIG>) {

# search IP 123.123.123.123
# ddd.ddd.ddd.ddd
# \d = digit
# {1,3} 1,2 or 3 digits

if ( /.*$string(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ ) {
return "$1";
last;
};
}

close (IFCONFIG);
}


in IFCONFIG :

1: eth5 Link encap:Ethernet HWaddr 00:30:4F:26:47:FE
2: inet addr:10.10.106.254 Bcast:10.10.106.255 Mask:255.255.255.0
3: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
4: RX packets:16 errors:0 dropped:0 overruns:0 frame:0
5: TX packets:172 errors:0 dropped:0 overruns:0 carrier:0
6: collisions:0 txqueuelen:100
7: RX bytes:960 (960.0 b) TX bytes:10320 (10.0 Kb)
8: Interrupt:5 Base address:0x1000

IP wird logischer weise in 1: nicht gefunden :.)
also die ();\n\n

<!--EDIT|redpantyhose|1134055493-->
esskar
 2005-12-08 17:23
#60817 #60817
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=redpantyhose,08.12.2005, 16:21]Benutze aus Geschwindikeitsgründen direkt den Code von CPAN: Sys::HostIP ...[/quote]
versteh ich nicht!
redpantyhose
 2005-12-08 17:28
#60818 #60818
User since
2005-12-08
12 Artikel
BenutzerIn
[default_avatar]
ifconfig ist sehr langsam :.)
habe mit COPY PASTE die REGEX aus CPAN: Sys::HostIP kopiert und vereinfacht ...
War ein Denkfehler :.)
<< >> 8 Einträge, 1 Seite



View all threads created 2005-12-08 15:53.