Anzeige:
Ergebnis 1 bis 7 von 7

Thema: socket linux ethx

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.09.2004
    Beiträge
    14

    socket linux ethx

    hallo,
    wie kann man unter linux einen raw-socket an ein bestimmtest gerät (ethx) binden?

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.09.2004
    Beiträge
    14
    mal anders, wie bekomme ich die ip-adresse für ein bestimmtes gerät heraus?

  3. #3
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Du musst die IP deines devices(ethx) rausbekommen, dann kannst die beim bind (in der sockaddr_in struktur) mit uebergeben ...
    INADDR_ANY bedeutet das der server anfragen von jedem device (inklusive des virtuellen localhost) entggegennimmt.

    Wie man aber an die eigene IP zur laufzeit kommt ? k.A.
    Problem was du haben kannst, ist das bei multicasting du virtuelle devices auf einem physikalischen haben kannst, die alle jeweils eine eigene IP haben ....

    Ne uebersicht in der konsole bekommst mit ifconfig. ne statische zuordnung nuetzt dir nix sobald du dhcp benutzt. (koenntest als workarround die hostname auslesen und ne dns anfrage stellen, faend ich selber aber hochgradig unschick, genau so wie nen ifconfig abschicken und die ausgabe parsen)

    Irgendwo muss es aber systemfunktionen (posix) geben, die zum device die IP liefern ... die iptables koennen es ja immerhin auch ...

    Ciao ...

  4. #4
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Ne andere frage .... warum willst du ueberhaupt den server auf nen device beschraenken ?

    Die meisten vorhandenen server kann man nur an eine feste IP binden (named, mysql ...) will man aus sicherheitsgruenden, das man von aussen, oder innen nicht auf den server draufkommt (und noch dhcp benutzt) muss man soweiso mit der firewall / portforwarding etc arbeiten ....

    Ciao ...

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.09.2004
    Beiträge
    14
    ich habe mir mal den quelltext von ifconfig angeschaut. ifconfig kann einen gerät eine ip-adresse zuorden. benutzen aber dafür funktionen aus anderen datein. bin noch auf der suche nach diesen funktionen;
    vielleicht kennt sich jemmand damit aus

  6. #6
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Jo noch was zum ueberdenken ....

    Wie du selber rausgefunden hasst, kann man mit ifconfig die ip eines devices relativ fix aendern .... die server selber bekommen davon nix mit.

    das nen gebundener named oder mysqld dann nimmer funktionieren sollte klar sein !
    wenn du aber bei deiner konfiguration ethx als bindung angibst, koennten die user (admins) impliziet daraus schlussfolgern, dass nach so nem ip wechsel der server immer noch funktionieren sollte ...
    Um das sicherzustellen, muesstest du den IP wechsel in deinem server abfangen ... ob du dir das antun willst ^^
    Weiss nich wie professionell dein server aufgezogen sein soll ...

    Normal findet man zu solchen Themen immer relativ schnell irgendwelche Faq's, weil man meist nicht der einzige mit dem problem ist.
    Findet man schlecht oder nur sehr schwer infos zu dem thema, deutet es meist daraufhin das man was "unuebliches" grad vorhat ...
    Genau so wie man fuer haeufige uebliche Probleme meist auch spezielle Funktionen durch die Standards zur verfuegung gestellt bekommt. Im Posix Manual hab ich so schnell nix gefunden .... (muss aber nix heissen)

    Ciao ...
    Geändert von RHBaum (01-02-2006 um 11:36 Uhr)

  7. #7
    Registrierter Benutzer
    Registriert seit
    22.09.2004
    Beiträge
    14
    ok, ich schränke mal das problem ein bisschen ein: wie kann ich die mac/ip-adresse eines gerätes herausfinden (die geräte aus /proc/net/dev)?
    ich habe mir dazu den quelltext von ifconfig (+die dazugehörenden libs) angeschaut.
    dort bekommen sie adressen in libs/interface.c durch ioctl heraus ( z.b. ioctl(skfd, SIOCGIFHWADDR, &ifr) ); skfd wird in lib/af.c initialisiert -> ich weiss nur nicht wie (aus einen mir unverständlichen struct).

    kennt sich jemmand damit aus bzw. kennt eine besseren algorithmus die gesuchten adressen herauszufinden?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •