Wie kriege ich die eigene Netzmaske raus?



  • moin, moin
    versuche seit 2 Stunden irgendwie rauszubekommen, auf welche Weise die
    Netzmaske des eigenen Rechners zu erfahren sei.
    Programmiere auf VC6 mit winsock2, und muss feststellen, ob es sinnvoll ist, an eine bestimmte Client IP einen Ping zu senden. Geht natürlich nur wenns das gleiche Netz ist. Hat jemand 'nen Tip?
    Ist die Struktur 'netent' aus der winsock dazu zu gebrauchen?

    Danke für Eure Hilfen
    arni
    (habe mein Passwort vergessen, deswegen steht oben ein anderer Benutzername)



  • karl_egon schrieb:

    Programmiere auf VC6 mit winsock2, und muss feststellen, ob es sinnvoll ist, an eine bestimmte Client IP einen Ping zu senden. Geht natürlich nur wenns das gleiche Netz ist.

    Wenn irgendwo im Netzwerk ein Router hängt, funktioniert dein Konzept nicht mehr.
    Man kann IMHO nicht im voraus entscheiden, ob ein Ping "sinnvoll" ist (außer in Trivialfällen), ohne die ganze Netztopologie zu kennen.



  • Stimmt natürlich cd9000, es ist nur eine mögliche Methode um das Vorhandensein bestimmter Geräte zu verifizieren, halt 'ne schnelle. Über Routergrenzen komme ich nicht hinweg. Aber es wäre sinnvoll, die Netzmaske vorher rauszubekommen, bevor man überhaupt testet, ob diese Methode zum Erfolg führt.
    Weis denn niemand wie man bei der SocketProgrammierung die eigene Subnet-Einstellung abfragt?
    Das wäre schon gut zu wissen,
    danke
    arni



  • Schlagt mich nicht tot, wenn ich jetzt totalen sch... schreibe,

    ipconfig liest mir die PC-IP mit Maske aus.

    pt



  • @plc_tippser
    stimmt schon, aber wie mache ich das aus einem C/C++ Programm unter win32 mit VC6?
    Möglicherweise würde system() oder ein shell-Aufruf weiterhelfen, will ich aber aus Sicherheitsgründen vermeiden.
    jemand ne Ahnung?
    Dann sags mir bitte.
    Danke
    arni

    PS. karl_egon ist identisch mit arni, hatte nur mein Password vergessen.



  • Hallo,

    ein Beispiel, mit dem man die TCP/IP-Konfiguration auslesen kann, gibt es hier

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/complete_ip_helper_application_source_code.asp

    MfG



  • Das wäre schon echt gut, habe versucht es zu compilieren, konnte aber dazu die iphlpapi.h und iphlpapi.lib nirgends finden. Sie war auch durch die Suchfunktion auf der MSN Seite nicht aufzutreiben. Hast du vielleicht auch noch 'nen Tip, wo ich die Bibliothek herbekommen kann?
    Danke
    arni



  • Hi,

    kenn mich damit 0% aus, aber hier hab ich gelesen, dass es die bei Platform SDK mitgeliefert gäbe, wenn ich das richtig verstanden hab 😉 Vll konnte das ja etwas helfen 🙂



  • Danke für den Hinweis, habe mir den Thread durchgelesen, konnte jedoch nichts mit machen, weil die iphlpapi.h und iphlpapi.lib schlichtweg nicht zu finden sind. Habe auch bei Kollegen, die ebenfalls VC6 und SDK auf dem Rechner installiert haben, gesucht. Wie bei einigen Antworten auf den Thread in Codeguru (ist ja mittlerweile richtig mit Werbung zugepflastert) hat niemand diese LIB zur Verfügung. Wenn mir jemand ein Zipfile mit der Bibliothek zur Verfügung stellen könnte, wäre richtig gut. eMail-Adresse ist im Profil hinterlegt.
    Hat sie einer von euch auf'm Rechner?
    Bitte mach dir die Mühe und schick mir den Kram.
    Danke
    arni





  • @surf
    das war gut, danke für den Tip habe sie runtergeladen und mittlerweile rausbekommen, warum die bei uns nicht vorhanden sind: Service Pack 6 für VisualStudio muss wohl installiert sein, obs der 5er tut, weis ich im Moment nicht. Jedenfalls nudelt jetzt der 6er ServicePack runter auf die Platte.

    habe mal mit dumbin die ganzen exportierten Funktionen ausgelesen:

    Section contains the following exports for iphlpapi.dll

    0 characteristics
    3D6F1E80 time date stamp Fri Aug 30 09:28:00 2002
    0.00 version
    1 ordinal base
    117 number of functions
    117 number of names

    ordinal hint RVA name

    1 0 00007767 AddIPAddress
    2 1 0000380F AllocateAndGetArpEntTableFromStack
    3 2 0000180A AllocateAndGetIfTableFromStack
    4 3 00008FF8 AllocateAndGetIpAddrTableFromStack
    5 4 000011F4 AllocateAndGetIpForwardTableFromStack
    6 5 0000933E AllocateAndGetIpNetTableFromStack
    7 6 0000905D AllocateAndGetTcpTableFromStack
    8 7 000091C8 AllocateAndGetUdpTableFromStack
    9 8 000067CD CreateIpForwardEntry
    10 9 00006964 CreateIpNetEntry
    11 A 00006BC9 CreateProxyArpEntry
    12 B 00007833 DeleteIPAddress
    13 C 00006879 DeleteIpForwardEntry
    14 D 00006A1B DeleteIpNetEntry
    15 E 00006CBF DeleteProxyArpEntry
    16 F 00007B7E EnableRouter
    17 10 00006A6C FlushIpNetTable
    18 11 0000969F FlushIpNetTableFromStack
    19 12 0000767C GetAdapterIndex
    20 13 00001DDC GetAdapterOrderMap
    21 14 00001F76 GetAdaptersInfo
    22 15 00004510 GetBestInterface
    23 16 00004571 GetBestInterfaceFromStack
    24 17 00006B7F GetBestRoute
    25 18 00009AB5 GetBestRouteFromStack
    26 19 00006DB5 GetFriendlyIfIndex
    27 1A 00001A9F GetIcmpStatistics
    28 1B 00001AF0 GetIcmpStatsFromStack
    29 1C 0000671B GetIfEntry
    30 1D 00008C58 GetIfEntryFromStack
    31 1E 000042D9 GetIfTable
    32 1F 00004049 GetIfTableFromStack
    33 20 00007579 GetIgmpList
    34 21 00001C53 GetInterfaceInfo
    35 22 000045B4 GetIpAddrTable
    36 23 0000469A GetIpAddrTableFromStack
    37 24 00006287 GetIpForwardTable
    38 25 0000126A GetIpForwardTableFromStack
    39 26 00006146 GetIpNetTable
    40 27 000093D4 GetIpNetTableFromStack
    41 28 00004288 GetIpStatistics
    42 29 00001CE7 GetIpStatsFromStack
    43 2A 00007C69 GetNetworkParams
    44 2B 0000421A GetNumberOfInterfaces
    45 2C 000013B6 GetPerAdapterInfo
    46 2D 00007948 GetRTTAndHopCount
    47 2E 0000192B GetTcpStatistics
    48 2F 0000197C GetTcpStatsFromStack
    49 30 00006399 GetTcpTable
    50 31 000090BA GetTcpTableFromStack
    51 32 000019E5 GetUdpStatistics
    52 33 00001A36 GetUdpStatsFromStack
    53 34 000064B9 GetUdpTable
    54 35 00009222 GetUdpTableFromStack
    55 36 00007573 GetUniDirectionalAdapterInfo
    56 37 00007311 InternalCreateIpForwardEntry
    57 38 0000744A InternalCreateIpNetEntry
    58 39 0000739F InternalDeleteIpForwardEntry
    59 3A 000074CA InternalDeleteIpNetEntry
    60 3B 00006E79 InternalGetIfTable
    61 3C 00006F63 InternalGetIpAddrTable
    62 3D 000070C3 InternalGetIpForwardTable
    63 3E 00007012 InternalGetIpNetTable
    64 3F 00007177 InternalGetTcpTable
    65 40 00007226 InternalGetUdpTable
    66 41 000072CE InternalSetIfEntry
    67 42 00007358 InternalSetIpForwardEntry
    68 43 0000748A InternalSetIpNetEntry
    69 44 0000740C InternalSetIpStats
    70 45 00007524 InternalSetTcpEntry
    71 46 00007CCA IpReleaseAddress
    72 47 00007D1C IpRenewAddress
    73 48 00007A5E IsLocalAddress
    74 49 0000B26E NTPTimeToNTFileTime
    75 4A 0000B1B7 NTTimeToNTPTime
    76 4B 00008723 NhGetGuidFromInterfaceName
    77 4C 000086CE NhGetInterfaceNameFromGuid
    78 4D 00008EC1 NhpAllocateAndGetInterfaceInfoFromStack
    79 4E 00008E1D NhpGetInterfaceIndexFromStack
    80 4F 000018B1 NotifyAddrChange
    81 50 00007AD9 NotifyRouteChange
    82 51 00007AEB NotifyRouteChangeEx
    99 52 00007D6E SendARP
    100 53 0000BDC5 SetAdapterIpAddress
    101 54 000075BE SetBlockRoutes
    102 55 0000675D SetIfEntry
    103 56 00008CF8 SetIfEntryToStack
    104 57 00006823 SetIpForwardEntry
    105 58 00009899 SetIpForwardEntryToStack
    106 59 0000997C SetIpMultihopRouteEntryToStack
    107 5A 000069CA SetIpNetEntry
    108 5B 000095C7 SetIpNetEntryToStack
    109 5C 0000990D SetIpRouteEntryToStack
    110 5D 00006913 SetIpStatistics
    111 5E 0000953A SetIpStatsToStack
    112 5F 000068D6 SetIpTTL
    113 60 000096E4 SetProxyArpEntryToStack
    114 61 0000762D SetRouteWithRef
    115 62 00006ACC SetTcpEntry
    116 63 0000915C SetTcpEntryToStack
    117 64 00007C03 UnenableRouter
    83 65 00009BC6 _PfAddFiltersToInterface@24
    84 66 00009C90 _PfAddGlobalFilterToInterface@8
    85 67 00009DFB _PfBindInterfaceToIPAddress@12
    86 68 00009D3B _PfBindInterfaceToIndex@16
    87 69 00009B92 _PfCreateInterface@24
    88 6A 00009BB5 _PfDeleteInterface@4
    89 6B 00009FA9 _PfDeleteLog@0
    90 6C 00009F69 _PfGetInterfaceStatistics@16
    91 6D 00009F32 _PfMakeLog@4
    92 6E 00009EA2 _PfRebindFilters@8
    93 6F 00009C53 _PfRemoveFilterHandles@12
    94 70 00009C0E _PfRemoveFiltersFromInterface@20
    95 71 00009CCA _PfRemoveGlobalFilterFromInterface@8
    96 72 00009F43 _PfSetLogBuffer@28
    97 73 00009FEB _PfTestPacket@20
    98 74 00009D04 _PfUnBindInterface@4

    Finde, dass ist schon ein großer fundus an Funktionen, der dort bereitgestellt wird. Zur Einbindung sind ja auch bei den links hier im Thread schon Beispiele dabei.

    Eine kleine Bitte hätte ich noch:
    wer hat die iphlpapi.h Headerdatei? Da stehen oft interessante Kommentare drin, die man über einen Dump der Exporte der dll natürlich nicht zu sehen bekommt.
    Wenn die jemand hat ...
    danke arni



  • Hai ,
    habe jetzt die Quelle gefunden und wo wohl?
    natürlich hier im Forum (MFC mit dem Visual C++).
    Da findet sich der folgende Tip.

    . schrieb:

    @noc: Lad dir das Platform SDK runter. Dort ist die Datei bei.

    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

    Sollte sowieso jeder Windows-Entwickler haben.

    Ist aber groß. 😋

    Habe ich mal SDK upgedatet und schwupps, sind alle Bibliotheken da.

    Also danke an alle, die mit Ihren Tipps Schritt für Schritt zur Problemlösung beigetragen haben.
    arni


Anmelden zum Antworten