IP Adresse / username(root) abfragen!!!

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
juschold
Beiträge: 24
Registriert: 17.10.2006 16:12:57

IP Adresse / username(root) abfragen!!!

Beitrag von juschold » 13.12.2006 10:12:52

Hallo

ich hab zwei kleine Probleme!!!
Leider hab ich nichts zu dem Thema gefuunden.

Ich suche funktionen mit den man die eingene IP-Adresse und den angemeldeten Benutzter (bzw. ob man als root angemeldet ist) auslesen kann.

Vieleicht weis ja eines etwas dazu.

Vielen dank

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 13.12.2006 10:19:17

Da du keine Programmiersprache angibst, nehme ich mal bash-Skript an.

Angemeldeter Benutzer, z.B.

Code: Alles auswählen

whoami
echo $UID
UID 0 ist root.

IP-Adresse.

Code: Alles auswählen

ifconfig
MfG GoKi
:wq

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 13.12.2006 10:49:44

...und die IP im Internet, hinter einem Router:
http://wiki.debianforum.de/AktuelleIPAd ... rausfinden

Gruß fuzzy

PS:
es würde auch mit wget gehen, Du kannst Dir, bei Bedarf noch mehr anpassen: :wink:

Code: Alles auswählen

 wget -qO- http://www.showmyip.de  | grep IP:

juschold
Beiträge: 24
Registriert: 17.10.2006 16:12:57

Beitrag von juschold » 13.12.2006 11:36:22

oh sorry

ich möchte in c/c++ die IP-Adresse und den Username auslesen!!!!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 13.12.2006 12:45:06

Den user bzw. die userid bekommst du mit

Code: Alles auswählen

#include <unistd.h>
#include <sys/types.h>

uid_t getuid(void);
uid_t geteuid(void); // effektive userid

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 13.12.2006 14:18:54

Welche IP denn? Du hast eventuell eine, die vom Internet sichtbar ist und dann beliebig viele - je nach Aufbau deines Netzes - andere IPs.
Unser Server hier hat z.b. 3 IP-Adressen in verschiedenen Netzen. Welche willst du nun haben? ;)

juschold
Beiträge: 24
Registriert: 17.10.2006 16:12:57

Beitrag von juschold » 13.12.2006 14:36:46

Hallo

danke erstmals, das mit der User-,Gruppen-ID funktioniert super!

ich möchte meine eigene IP-Adresse in c/c++ unter Linux auslesen.

grüße

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 13.12.2006 15:23:52

juschold hat geschrieben:Hallo

danke erstmals, das mit der User-,Gruppen-ID funktioniert super!

ich möchte meine eigene IP-Adresse in c/c++ unter Linux auslesen.

grüße
Nun ja, welche von den "eigenen"? Darauf wollte ich hinaus. Also sag mal genauer, was du unter "eigene IP" verstehst.

juschold
Beiträge: 24
Registriert: 17.10.2006 16:12:57

Beitrag von juschold » 13.12.2006 15:28:42

Hallo

ich weis das man in einen PC/server mehrer Ethernetkarten einbauen kann und noch vielmehr IP-Adressen vergeben kann!!!

Mein PC hat momentan eine Ethernetkarte und eine IP-Adresse, diese möchte ich wissen.
Wenn wir schon dabei sind, wie kann man alle IP-Adressen auslesen vielleicht brauch ich auch mal diese Option.

Gruß
ju

juschold
Beiträge: 24
Registriert: 17.10.2006 16:12:57

Beitrag von juschold » 14.12.2006 18:11:46

Hallo

oh schade "nepos", ich hätte gemeint das du für mich mindestens eine Lösung hast. :idea:
Hat sich auf jedenfall so angeört!!!

nepos hat geschrieben:Welche IP denn? Du hast eventuell eine, die vom Internet sichtbar ist und dann beliebig viele - je nach Aufbau deines Netzes - andere IPs.
Unser Server hier hat z.b. 3 IP-Adressen in verschiedenen Netzen. Welche willst du nun haben? ;)

Gruß
juschold

juschold
Beiträge: 24
Registriert: 17.10.2006 16:12:57

Beitrag von juschold » 08.01.2007 10:43:27

hallo

bräuchte dringend die Funktion zum auslesen der IP-Adresse ic C++

Gruß
juschold

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 08.01.2007 10:47:57

Hilft dir

Code: Alles auswählen

man getipnodebyname
weiter?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: IP Adresse / username(root) abfragen!!!

Beitrag von gms » 08.01.2007 15:32:16

juschold hat geschrieben: Leider hab ich nichts zu dem Thema gefuunden.
Ich suche funktionen mit den man die eingene IP-Adresse ... auslesen kann.
Bei diesem Thema müßtest du eigentlich eher zuviel als zuwenig gefunden haben. Dafür gibt es ja unzählige Lösungsansätze:

über den Host Namen:

Code: Alles auswählen

root@gms4:~# cat gethostip.c
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[]) {
  struct hostent *phe;
  char** p;

  if (argc<2) exit(1);
  phe = gethostbyname(argv[1]);
  if (phe == NULL) exit(2);
  if ( phe->h_addrtype != AF_INET ) exit(3);
  p = phe->h_addr_list;
  if ( p == NULL ) exit(3);
  while ( *p ) {
    printf("%s: %s\n", argv[1],inet_ntoa(*(struct in_addr*)(*p)));
    p++;
  }
}
root@gms4:~# gcc -o gethostip gethostip.c
root@gms4:~# ./gethostip gms4
gms4: 192.168.100.123
über den Interface Namen:

Code: Alles auswählen

root@gms4:~# cat getifip.c
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <netinet/in.h>

int main(int argc, char *argv[])
{
  int d;
  struct ifreq ir;
  struct sockaddr *psa;

  if ( argc !=2 ) exit(1);
  if ( (d = socket(PF_INET,SOCK_STREAM,0)) == -1) exit(2);
  strncpy(ir.ifr_name,argv[1],IFNAMSIZ);
  if (ioctl(d,SIOCGIFADDR,&ir) == -1) exit(3);
  psa = (struct sockaddr *)&(ir.ifr_addr);

  printf("%s: %s\n", ir.ifr_name, (char*)inet_ntoa(((struct sockaddr_in*) psa)->sin_addr)
  );
  return 0;
}

root@gms4:~# gcc -o getifip getifip.c
root@gms4:~# ./getifip eth0
eth0: 192.168.100.123

Gruß
gms

Benutzeravatar
Sid Burn
Beiträge: 47
Registriert: 16.11.2006 15:18:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /universe/earth/europe/germany/nrw/essen
Kontaktdaten:

Beitrag von Sid Burn » 08.01.2007 19:11:11

juschold hat geschrieben:Hallo
ich weis das man in einen PC/server mehrer Ethernetkarten einbauen kann und noch vielmehr IP-Adressen vergeben kann!!!
Wieso mehrere Ethernetkarten?
Du kannst auch einer einzigen Ethernetkarte 5, 10 oder 5000 IP Adressen zuweisen, so wie du Lustig bist.

Sowas kommt z.B. bei Firewall Systemen vor. Dort antwortet der Paket Filter für ein ganzes Netz und gibt Sie danach den anderen Host weiter. Wenn du mal mit Virtuellen Server gearbeitet hast wirst du sicherlich auch kennen das das Gast System jeweils eine eigene IP haben kann. Diese IPs müssen letztendlich auch auf das Host System abgebildet werden. Wenn du VLANs hast kannst du z.B. ein Trunk Port auf einen Switch bereit stellen und den Rechner dann in allen VLANs mit einer unterschiedlichen IP zur VErfügung stellen. Alles mit einer Ethernetkarte.

Die Frage welche IP du also genau haben möchtest ist volkommen berechtigt.

Antworten