Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
IP Adresse

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Schlumpf
Gast





BeitragVerfasst am: 09. Apr 2001 17:25   Titel: IP Adresse

Wie kann ich unter Linux meine IP-Adressen (eth0, eth1, ippp0, ...)auslesen lassen bzw. eine Bestimtme bzw. auswählen kann welche ich will und in einer long int Variable speichern?
 

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 10. Apr 2001 13:56   Titel: Re: IP Adresse

Hi,

ich weiß es auch nicht auswendig, aber da müßte es ioctl-Aufrufe dafür geben. Oder muß man die Devices aus /proc/net/dev ermitteln? Als Einstieg empfehle ich dir dir Manpages zu ip(7), tcp(7) und socket(7). Im Quellcode von Programmen wie z.B. ethereal findest du Beispiele, wie es implementiert wird.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Schlumpf
Gast





BeitragVerfasst am: 16. Apr 2001 16:43   Titel: Re: IP Adresse

Hat mich zwar bis jetzt noch nicht großartig weitergebracht, aber trotzdem dank hjb
 

tkortkamp



Anmeldungsdatum: 08.04.2001
Beiträge: 143
Wohnort: Bremen

BeitragVerfasst am: 16. Apr 2001 17:51   Titel: Re: IP Adresse

Hi!
Du könntest mit Hilfe von ifconfig und gawk die IP-Addresse herausfinden:

/sbin/ifconfig eth0 | gawk /inet\ addr:/ | gawk '{ x = $2 } ; { y = substr(x,6) } ; { print y}'


Für den Broadcast:

/sbin/ifconfig eth0 | gawk /inet\ addr:/ | gawk '{ x = $3 } ; { y = substr(x,7) } ; { print y} '

Für Netmask:

/sbin/ifconfig eth0 | gawk /inet\ addr:/ | gawk '{ x = $4 } ; { y = substr(x,6) } ; { print y}'


Das könnte man dann doch von dem C-Programm aus aufrufen. (Ich weiß das mit dem doppelten Aufruf von gawk ist nicht profesionell . Hab mich aber auch erst seit gestern mit gawk beschäftigt.)

Viel Glück,
Tobias
_________________
dude i'm pretty damn sure you could script somebody back to life
 
Benutzer-Profile anzeigen Private Nachricht senden

Schlumpf
Gast





BeitragVerfasst am: 17. Apr 2001 14:44   Titel: Re: IP Adresse

Der Aufruf tut bei mir leider net, aber ist nicht so schlimm. Bin gerade dabei die Quellen von ifconfig durchzulesen, es muss da ja irgendwo drinstehen wie ifconfig das macht. Nochmals vielen Dank an alle.

cya
 

Christian Thurner
Gast





BeitragVerfasst am: 17. Apr 2001 15:02   Titel: Re: IP Adresse

Hi,

dieses kleine Programm sollte in etwa das tun, was Du willst.

CU
Christian


#include <stdio.h>
#include <sys/ioctl.h>
#include <string.h>
#include <net/if.h>
#include <arpa/inet.h>

int printIP(const char *interface)
{
struct ifreq ifr;
struct sockaddr_in *addr_ptr;
int sock_fd;

if( (sock_fd = socket( AF_INET, SOCK_STREAM, 0 )) < 0 )
return -1;

memset( &ifr, 0, sizeof(ifr) );
strcpy( ifr.ifr_name, interface );
if( ioctl(sock_fd, SIOCGIFADDR, &ifr) == 0 ) {
addr_ptr = (struct sockaddr_in *) &ifr.ifr_addr;
addr_ptr->sin_family = AF_INET;
printf("Interface : %s
IP : %s
", interface, inet_ntoa(addr_ptr->sin_addr) );
return 0;
}

return -1;
}


int main(int argc, char** argv)
{
if( argc < 2 ) {
printf( "USAGE : getip <INTERFACE>
" );
return -1;
}

if( printIP( argv ) != 0 ) {
printf( "ERROR
");
return -1;
}

return 0;
}
 

weissi



Anmeldungsdatum: 24.03.2001
Beiträge: 40
Wohnort: Freiburg

BeitragVerfasst am: 18. Apr 2001 12:26   Titel: Re: IP Adresse

Super das Proggi!!! Das habe ich schon länger mal gesucht Smile))
Aber du hast in der Zeile
if( printIP( argv ) != 0 ) {
was vergessen, das muss
if( printIP( argv ) != 0 ) {
heissen. Ich würde das ganze in eine for schleife packen, je nach dem wie viele Argumente Wink
Weissi
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

germannightwing



Anmeldungsdatum: 08.08.2000
Beiträge: 29
Wohnort: Oberhausen

BeitragVerfasst am: 25. Apr 2001 23:25   Titel: Re: IP Adresse

Hallo,

code:
if( printIP( argv[ 1 ] ) != 0 )


sollte es eigentlich heißen. Löscht die Leerzeichen in den eckigen Klammer, das Boardsystem hat ne Macke und meint das währe UBB Code.

bye
/ Bernd /
_________________
<!--http--><a href="http://www.blue-temple.de" target="_blank"><img src="http://www.blue-temple.de/footer.png" border="0"></a><!--url-->


Zuletzt bearbeitet von germannightwing am 25. Apr 2001 23:25, insgesamt 4-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Schlumpf
Gast





BeitragVerfasst am: 26. Apr 2001 17:33   Titel: Re: IP Adresse

Hi all,

endlich tut es und langsam verstehe ich den Code auch.

Danke nochmal an alle
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy