physikalische Adresse ermitteln

illaX

Erfahrenes Mitglied
Hi,

ich moechte euch schon wieder mit ICMP nerven :D

Habe ein Programm implementiert das einen ARP sendet um die MAC herauszufinden.

Hier mal mein CODE:
Code:
HRESULT hr;
    IPAddr  ipAddr;
	ULONG   pulMac[2];
    ULONG   ulLen;

    ipAddr = inet_addr("89.21.42.1");
    memset (pulMac, 0xff, sizeof (pulMac));
    ulLen = 6;
    
    hr = SendARP (ipAddr, 0, pulMac, &ulLen);
    printf ("Return %08x, length %8d\n", hr, ulLen);
    
	cout << hr << endl;
	if(hr == NO_ERROR) {
		// Stream-Objekt definieren
		ostringstream os;
		// Daten in Stream uebertragen
		os  << hex << pulMac[0] << pulMac[1] << '\n';

		// stream in string konvertieren
		string tmp = os.str();

		string strMAC = tmp.substr(6,2) + tmp.substr(4,2) + tmp.substr(2,2) 
			+ tmp.substr(0,2) + tmp.substr(14,2) + tmp.substr(12,2);
		
		// Streaminhalt ausgeben
		cout << strMAC << endl;
		//return env->NewStringUTF(strMAC.c_str());
	}

Diese Methode funktioniert auch solange sich der Rechner im selben Netz befindet, liegt er aber in einem anderen kommt ein Fehler zurueck. Weiss jemand wie ich die anfragen ueber den BC senden kann?
 
OK danke.
Aber wie kann ich die MAC von PC in einem anderen Netz herausfinden, wenn ARP nicht funktioniert?
 
Zurück