Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   daten über eth0 senden (https://www.delphipraxis.net/95677-daten-ueber-eth0-senden.html)

schorschy 11. Jul 2007 13:34


daten über eth0 senden
 
hey leute brauch dringend hilfe komme nicht mehr weiter :wall:

wir wollen pakete die wir mit ethereal gesnifft haben nun wieder versenden und brauchen dazu ein programm oder tool
leider sind unsere ansätze nicht die besten: :coder:

Code:
#include <iostream>
#include <cstdio>
#include <pcap.h>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
   char    filename[128];
   ifstream file;
   char    zeile[1024];

    
   cout << "Datei angeben: " << flush;
   cin.getline(filename, 127);
   cout << filename << endl;
   
   
   const unsigned char *pkt = (const unsigned char*)*filename;
   unsigned int pkt_length = 6;
 
   pcap_t *my_capture_descriptor;
 
   char *errbuf="fehler";
   my_capture_descriptor = pcap_open_live("eth0",2000,1,1000,errbuf);
   
   

   if(pcap_sendpacket(my_capture_descriptor, pkt, pkt_length) < 0)
     return 1;

   return 0;
}
wir stecken ganz gewaltig in der klemme und finden keine möglichkeit dies zu bewerkstelligen da das ganze auf osi-schicht 2 ablaufen muss

also nun zu euch vlt hat einer von euch eine idee ein programm tipps zu anderen programmen oder unseren und kann uns so weiter helfen :coder2:

mfg peter

Reinhard Kern 11. Jul 2007 14:17

Re: daten über eth0 senden
 
Zitat:

Zitat von schorschy
hey leute brauch dringend hilfe komme nicht mehr weiter :wall:
also nun zu euch vlt hat einer von euch eine idee ein programm tipps zu anderen programmen oder unseren und kann uns so weiter helfen :coder2:

mfg peter

Hallo,

eure Sprache ist C++ und das BS linux - damit solltet ihr euch an ein "zuständiges" Forum wenden, hier wäre es reiner Zufall, wenn sich jemand damit auch auskennt.

Gruss Reinhard

Relicted 11. Jul 2007 14:23

Re: daten über eth0 senden
 
Zitat:

damit solltet ihr euch an ein "zuständiges" Forum wenden,
um herauszufinden welches forum das ist besucht bitte http://www.bundesamt-fuer-foren-them...und-threads.de :-)

ne da muss ich meinem vorredner recht geben.

http://www.c-plusplus.de/forum/ <-- die jungs könnten vielleicht mehr wissen *shrug*


gruß
reli

schorschy 11. Jul 2007 14:36

Re: daten über eth0 senden
 
dort haben wir auch schon nachgefragt und die kommen auch nicht viel weiter

DGL-luke 11. Jul 2007 14:40

Re: daten über eth0 senden
 
was genau funktioniert denn nicht an dem sample?

Der_Unwissende 11. Jul 2007 16:49

Re: daten über eth0 senden
 
Hi,
mal ein zwei Anmerkungen:

Erstmal ist der Fehlerpuffer echt mal individuell gewählt. Man sollte hier keinen festen String übergeben, sondern die Adresse eines Speicherbereichs, der einfach groß genug für einen möglichen Fehler ist. Die für C/C++ übliche Form (die auch hier Anwendung findet) ist das deklarieren eines Char-Arrays, dessen Länge durch eine Konstante (max. Fehlerlänge) festgelegt wird.
An sich ist die Funktion pcap_open_live auch mit einem Rückgabewert versehen, diesen solltest Du auch auswerten. Die Doku sagt, dass ein null hier für den Fehlerfall steht und selbst ein erfolgreicher Abschluss kann eine Fehlermeldung mit sich bringen (dies sollte man also ggf. auch prüfen).

Vielleicht solltet ihr auch erstmal schauen, ob überhaupt eth0 für das Capturing in Frage kommt. Versucht mal erstmal alle möglichen Karten auszugeben, müsste ungefährt (ungetestet) so aussehen:

Code:
#include <iostream>
#include <cstdio>
#include <pcap.h>
#include <fstream>

using namespace std;

int main(int argc, char* argv[]) {

  char errbuf[PCAP_ERRBUF_SIZE];
  pcap_if_t **devs;

  if (pcap_findalldevs(devs, errbuf) != 0) {
    cout << "Fehler: \n" << errbuf << "\n";
  }
 
  else {
    pcap_if_t *dev = devs[0];
    cout << "Gefundene Devices: \n";

    while ((*dev) != 0) {
      cout << dev->name;
      dev = dev->next;
    }
  }
}
Wie gesagt, ungetestet (mache zu selten was mit C, kann also sein dass die eine oder andere Indirektion hier falsch ist). Da solltest Du jedenfalls erstmal schauen, ob es überhaupt ein eth0 Device gibt, sonst ist das Device nicht für die Bibliothek geeignet.

Gruß Der Unwissende

PS: Herzlich Willkommen in der DP :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz