I/O address, IRQ nummer und MAC address der Netzwerkkarte lesen - problem

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von gfcwfzkm.

    I/O address, IRQ nummer und MAC address der Netzwerkkarte lesen - problem

    Hi,

    ich müsste wissen, wie man die I/O-Adresse, IRQ-Nummer und MAC-Adresse der "Netzwerkkarte" (habs im MainBoard drin) auslesen kann.
    Unter Linux soll das ja kein Problem sein, jedoch macht mir Windows7 beim auslesen dieser Infos zu schaffen, aber hab ich keine Lust, irgendwelche alte Tools dazu installen zu müssen. Irgendwo wird Windows seine infos doch zeigen / rausrücken...

    Wüsste wer, wie man die benötigte Sachen sieht?

    thx & mfg

    gfcwfzkm

    Edit:// Ich benötige dies für den Bochs-Emulator. Wieso den alten Bochs-Emulator? Er ist portabel, klein und man hat mehr einstellungsmöglichkeiten.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „gfcwfzkm“ ()

    Windows 7 weiß ich nicht genau, aber unter XP kam man an die IRQ Nummer über den Gerätemanager -> Netzwerkkarte auswählen -> Eigenschaften -> Reiter: Ressourcen
    Denke unter Win7 wird das ähnlich sein, aufjedenfall im Gerätemanager. MAC Adresse bekommst du über die CMD, wenn du dort ipconfig -all eingibst.

    Was die I/O-Adresse is weiß ich allerdings nicht, bzw. wie man daran kommt.
    danke dir, hat mir weitergeholfen =)

    Jedoch müsste ich noch wissen, wie ich die IO-Adresse sehe (sonst kann Bochs die Treiber nicht laden =(

    gfc
    da kannst du nichts auslesen.
    Das sind die Einstellungen, auf welchen Ports die Emulierte Netzwerkkarte laufen sollen.
    Das musst du dann in Dos oder Win3.1 eingeben.

    IO müsste wenn ich mich richtig erinnere 0x280 sein. Als IRQ Probier mal 3.
    #define true ((rand() % 2)? true: false) //Happy debugging suckers
    Ich gebe KEINE Hilfe per PN! Es gibt für ALLES nen Forum/Thread!
    hmm...
    brauche hilfe dabei. Hab einen Fehler: Could not load WPCap Drivers for ethernet support!

    Die Zeile mit der Config: ne2k: ioaddr=0x280, irq=2, mac=00:c4:3B:00:C3:00, ethmod=win32, ethdev=Realtek RTL8168D/8111D-Familie-PCI-E-Gigabit-Ethernet-NIC (NDIS 6.20)

    Kennt sich wer besser mit Bochs aus?

    mfg

    gfc

    EDIT://
    The ethdev setting is the name of the network interface on your system, and is also OS-dependent.

    hmm, da steht weiter drauf, das Unix dies mit ipconfig anzeigt, jedoch nicht Windows. Für Windows soll es niclist geben (laut der steinalten anleitung) - Computer sagt nein
    Wollte sagen, dass ich das Problem gelöst habe, dank einen kleinen C-Code, den ich mit euch teile:

    C-Quellcode

    1. #ifndef WIN32
    2. #error Niclist will only work on WIN32 platforms.
    3. #endif
    4. #include <windows.h>
    5. #include <stdio.h>
    6. #include <conio.h>
    7. #include <stdlib.h>
    8. #define MAX_ADAPTERS 10
    9. #define NIC_BUFFER_SIZE 2048
    10. // declare our NT/9X structures to hold the adapter name and descriptions
    11. typedef struct {
    12. LPWSTR wstrName;
    13. LPSTR strDesc;
    14. } NIC_INFO_NT;
    15. typedef struct {
    16. LPSTR strName;
    17. LPSTR strDesc;
    18. } NIC_INFO_9X;
    19. // declare an array of structures to hold our adapter information
    20. NIC_INFO_NT niNT[MAX_ADAPTERS];
    21. NIC_INFO_9X ni9X[MAX_ADAPTERS];
    22. BOOLEAN (*PacketGetAdapterNames)(PTSTR, PULONG) = NULL;
    23. PCHAR (*PacketGetVersion)() = NULL;
    24. void myexit (int code)
    25. {
    26. printf ("\nPress any key to continue\n");
    27. getch();
    28. exit(code);
    29. }
    30. int CDECL main(int argc, char **argv)
    31. {
    32. int i;
    33. HINSTANCE hPacket;
    34. DWORD dwVersion, dwMajorVersion;
    35. char AdapterInfo[NIC_BUFFER_SIZE] = { '\0','\0' };
    36. unsigned long AdapterLength = NIC_BUFFER_SIZE;
    37. LPWSTR wstrName;
    38. LPSTR strName, strDesc;
    39. int nAdapterCount;
    40. PCHAR dllVersion;
    41. PCHAR testString;
    42. int nDLLMajorVersion, nDLLMinorVersion;
    43. // Attemp to load the WinpCap packet library
    44. hPacket = LoadLibrary("PACKET.DLL");
    45. if(hPacket)
    46. {
    47. // Now look up the address
    48. PacketGetAdapterNames = (BOOLEAN (*)(PTSTR, PULONG))GetProcAddress(hPacket, "PacketGetAdapterNames");
    49. PacketGetVersion = (PCHAR (*)())GetProcAddress(hPacket, "PacketGetVersion");
    50. }
    51. else {
    52. printf("Could not load WinPCap driver!\n");
    53. printf ("You can download them for free from\n");
    54. printf ("http://www.winpcap.org/\n");
    55. myexit(1);
    56. }
    57. dwVersion = GetVersion();
    58. dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
    59. // Get DLL Version and Tokenize
    60. dllVersion = PacketGetVersion();
    61. nDLLMajorVersion = -1;
    62. nDLLMinorVersion = -1;
    63. for (testString = strtok(dllVersion, ",. ");
    64. testString != NULL; testString = strtok(NULL, ",. "))
    65. {
    66. // If Single Character, Convert
    67. if (strlen( testString ) == 1)
    68. {
    69. // Check Major First
    70. if (nDLLMajorVersion == -1)
    71. {
    72. nDLLMajorVersion = atoi(testString);
    73. }
    74. else if ( nDLLMinorVersion == -1 )
    75. {
    76. nDLLMinorVersion = atoi(testString);
    77. }
    78. }
    79. }
    80. // Get out blob of adapter info
    81. PacketGetAdapterNames(AdapterInfo,&AdapterLength);
    82. // If this is Windows NT ... And DLL Returns UNICODE
    83. if(!(dwVersion >= 0x80000000 && dwMajorVersion >= 4) &&
    84. (nDLLMajorVersion < 3 || (nDLLMajorVersion == 3 && nDLLMinorVersion < 1)))
    85. {
    86. wstrName=(LPWSTR)AdapterInfo;
    87. // Obtain Names
    88. nAdapterCount = 0;
    89. while ((*wstrName))
    90. {
    91. // store pointer to name
    92. niNT[nAdapterCount].wstrName=wstrName;
    93. wstrName += lstrlenW(wstrName) +1;
    94. nAdapterCount++;
    95. }
    96. strDesc = (LPSTR)++wstrName;
    97. // Obtain descriptions ....
    98. for(i=0;i<nAdapterCount;i++)
    99. {
    100. // store pointer to description
    101. niNT[i].strDesc=strDesc;
    102. strDesc += lstrlen(strDesc) +1;
    103. // ... and display adapter info
    104. printf("\n%d: %s\n",i+1,niNT[i].strDesc);
    105. wprintf(L" Device: %s",niNT[i].wstrName);
    106. }
    107. if(i) {
    108. printf("\n\nExample config for bochsrc:\n");
    109. wprintf(L"ne2k: ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=%s",niNT[0].wstrName);
    110. printf("\n");
    111. }
    112. }
    113. else
    114. {
    115. // Windows 9x
    116. strName=(LPSTR)AdapterInfo;
    117. // Obtain Names
    118. nAdapterCount = 0;
    119. while ((*strName))
    120. {
    121. // store pointer to name
    122. ni9X[nAdapterCount].strName=strName;
    123. strName += lstrlen(strName) +1;
    124. nAdapterCount++;
    125. }
    126. strDesc = (LPSTR)++strName;
    127. // Obtain descriptions ....
    128. for(i=0;i<nAdapterCount;i++)
    129. {
    130. // store pointer to description
    131. ni9X[i].strDesc=strDesc;
    132. strDesc += lstrlen(strDesc) +1;
    133. // ... and display adapter info
    134. printf("\n%d: %s\n",i+1,ni9X[i].strDesc);
    135. printf(" Device: %s",ni9X[i].strName);
    136. }
    137. if(i)
    138. {
    139. printf("\n\nExample config for bochsrc:\n");
    140. printf("ne2k: ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=%s",ni9X[0].strName);
    141. printf("\n");
    142. }
    143. printf("\n");
    144. }
    145. myexit (0);
    146. return 0; /* shut up stupid compilers */
    147. }


    *und an Multi-Editor Kritiker: habs mit dem Multi-Editor Compilt :P

    mfg

    gfcwfzkm