zoidberger
Mitglied
Hey Leute!
Ich bin etwas am verzweifeln, da ich hier ein kleines problem habe..
Ich programmiere gerade unter linux.. das programm soll später auf einem linux server (aber vlt. auch mal auf einem win server) laufen. Es soll aber nur laufen, wenn es auf einem bestimmten server liegt.
Also soll beim start des programms geprüft werden, welche (interne) IP der host gerade hat.
Ich möchte dafür nicht unbedingt extra einen socket auf machen... wenn das aber im endeffekt doch die einfachste lösung ist, werde ich das wohl tun.
(dass ich keine system calls verwenden will ist glaube ich logisch wegen linux <-> win)
Bislang habe ich es mit
und
versucht. Da bekomme ich auch den korrekten host namen, allerdings immer nur die loopback adresse 127.0.0.1. Das nützt mir nicht viel..
Auf einem der server habe ich 4 interfaces.
lo, eth1, eth0 und bond0.
Mich interessiert die IP von bond0.
Gibt es eine Möglichkeit das ganze schnell und einfach mit
zu lösen oder werde ich es mit einem socket und dem veralteten
versuchen müssen?
Es wäre schön, wenn mir jemand einen Rat hätte.
Für den Fall dass es jemand interessiert, hier den gethostbyname code:
Vielen Dank im Vorraus!
Ich bin etwas am verzweifeln, da ich hier ein kleines problem habe..
Ich programmiere gerade unter linux.. das programm soll später auf einem linux server (aber vlt. auch mal auf einem win server) laufen. Es soll aber nur laufen, wenn es auf einem bestimmten server liegt.
Also soll beim start des programms geprüft werden, welche (interne) IP der host gerade hat.
Ich möchte dafür nicht unbedingt extra einen socket auf machen... wenn das aber im endeffekt doch die einfachste lösung ist, werde ich das wohl tun.
(dass ich keine system calls verwenden will ist glaube ich logisch wegen linux <-> win)
Bislang habe ich es mit
Code:
gethostname
Code:
gethostbyname
Auf einem der server habe ich 4 interfaces.
lo, eth1, eth0 und bond0.
Mich interessiert die IP von bond0.
Gibt es eine Möglichkeit das ganze schnell und einfach mit
Code:
gethostbyname
Code:
SIOCGIFCONF
Es wäre schön, wenn mir jemand einen Rat hätte.
Für den Fall dass es jemand interessiert, hier den gethostbyname code:
Code:
string returnVal;
char temp[255];
gethostname(temp,sizeof(temp));
const hostent* host_info = NULL;
struct in_addr addr;
host_info = gethostbyname(temp);
returnVal = temp;
cout << returnVal << endl;
int i=0;
while (host_info->h_addr_list[i])
{
addr.s_addr = *((long*)host_info->h_addr_list[i++]);
cout << inet_ntoa(addr) << endl;
};
Vielen Dank im Vorraus!