AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IP - Hardcore

Ein Thema von Meflin · begonnen am 18. Jan 2005 · letzter Beitrag vom 6. Dez 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#11

Re: IP - Hardcore

  Alt 31. Jan 2005, 21:49
Und Ethereal kommt auch mit Source. Dort sieht man also auch, wie man die Pakete empfangen kann Und ich glaube, Ethereal kann auch einzelne Pakete senden. Dort hat man also ne gute Vorlage.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#12

Re: IP - Hardcore

  Alt 1. Feb 2005, 00:24
leute, ob udp oder tcp steht bei raw ausser frage, da man dort das protocol selber zusammen friemeln muss.. so wird raw auf dem ip layer genutzt und man kann damit icmp, tcp, udp, ALLES ANDERE AUCH
zusammenbauen und als paket verschicken

//edit
wenn nicht sogar, muss man den ip header oder ethernet auch noch selber machen (nicht genau weis)

eine entprechende demo mit source für delphi enthalten diverse sources von madshi
und iphlpapi wird benötigt ausser man baut die auch selber

ich hab da ein paar gute sources von syn floodern und anderem krempel gefunden, der auf iphlpapi aufsetzt und damit raw pakete sendet. aber bitte keine anfragen! das zeug lässt sich mit ein wenig selbstinitiative selber ergooglen.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Flax

Registriert seit: 12. Mär 2003
76 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: IP - Hardcore

  Alt 1. Feb 2005, 10:37
Ganz schön und gut. Aber was soll das ganze?
Wenn ein Programm Datenpakete über ein Medium (Netzwerk) schicken will, muss es sich an die entsprechenden Konventionen (Gesetze) halten.

Also der Header für das Senden im Internet wird dann wohl TCP/IP bleiben - sprich IP (Internet Protocol)!

Ich denke, die Art des Headers wird man nicht selber bauen können. Dann verstehen die ganzen anderen Netzsegmente nicht mehr was los ist .

Es stellt sich somit eher die Frage wie kann man das vorhandene IP entsprechend seinen Wünschen konfigurieren?

Nich?
  Mit Zitat antworten Zitat
AndyWHV

Registriert seit: 27. Jan 2005
1 Beiträge
 
#14

Re: IP - Hardcore

  Alt 9. Feb 2005, 17:33
Zitat:
Also der Header für das Senden im Internet wird dann wohl TCP/IP bleiben - sprich IP (Internet Protocol)!
Also das sind 2 Unterschiedliche Dinge

TCP/IP sind 2 Protokolle
TCP ist das Transmission Control Protocol und liegt auf dem IP (Internet Protocol) auf

Im internet wird auch das UDP Protokoll genutzt (teilweise Gameserver oder Radio und TV sender)
Bei TCP muß zuerst die Verbindung Server-Client hergestellt werden und bei UDP kann auch gesendet werden ohne das Clients verbunden sind. Hier kann ein Client später verbinden.

Erst darüber wird ein Protokoll wie HTTP,FTP oder ähnliches genutzt.

Wenn man nun nicht TCP oder UDP nutzen möchte (aus welchen Gründen auch immer) muß man sich sein eigenes Protokoll bauen.

UDP ist recht flexibel und kleiner als TCP, da keine Kontrolle der Datenpakete vorgenommen wird - somit reicht es für die meisten Dinge darauf aufzusetzen.

TCP prüft die korrektheit der Pakete (Reihenfolge der Pakete und Prüfsumme ob das Paket selbst in Ordnung ist) und schickt die Pakete gegebenenfalls nochmal.

Das IP soll als Basis genutzt werden wie ich es verstanden habe, nur eben nicht TCP.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 31. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#15

Re: IP - Hardcore

  Alt 18. Jan 2006, 13:39
Zitat von Luckie:
Guck dich mal auf dieser Seite etwas um: http://c-worker.ch/ Da hat es auch Demos, wie man ohne Komponenten einen Ping realisiert. Das C Demo wollte ich schon längst selber mal nach Delphi übersetzten.
Luckie, Bist du schon dazu gekommen das zu übersetzen?
ich versuche mich nämlich grade auch daran, allerdings basierend auf einer anderen Quelle (SysInternals - ShareEnum\Source\Ping.cpp)
und erhalte beim Empfangen einen Fehler "WSAGetLastError: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat" dabei ist mein Router sehr wohl online sonst wär ich ja nicht hier... anbei mal den Stand der Dinge zum Pingen (Jedi-Übersetzungen von WinSock2 benötigt):
Delphi-Quellcode:
unit SockPing;

interface

uses Windows,SysUtils,JWAWinSock2;

const
  ICMP_ECHO=8;
  ICMP_ECHOREPLY=0;

type
  TIcmpHeader=Record
     i_type: Byte;                  // ICMP packet type
     i_code: Byte;                  // type subcode
     i_chksum: USHORT;               // packet checksum
     i_id: USHORT;                  // unique packet ID
     i_seq: USHORT;                  // packet sequence number
     timestamp: ULONG;               // timestamp
    data:array[0..31]of char;
  end;

function Ping(Const Server:String):boolean;

implementation

function Ping(Const Server:String):boolean;
var
  Sock:TSocket;
  Addr:TSockAddrIn;
  WD:WSAData;
  ICMPhdr:TIcmpHeader;
  datasize,fromlen,Timeout:Integer;
begin
  WSAStartup(MakeWord(2,2),WD);
  Sock:=WSASocket(AF_INET,SOCK_RAW,IPPROTO_ICMP,nil,0,WSA_FLAG_OVERLAPPED);
  Result:=not(Sock=Invalid_Socket);
  if not Result then exit;

  TimeOut:=100;
  Result:=not(setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,@Timeout,Sizeof(Timeout))=SOCKET_ERROR);
  if not Result then exit;

  TimeOut:=100;
  Result:=not(setsockopt(sock,SOL_SOCKET,SO_SNDTIMEO,@Timeout,Sizeof(Timeout))=SOCKET_ERROR);
  if not Result then exit;

  with Addr do begin
    sin_addr.S_addr:=inet_addr(Pchar(Server));
    sin_family:=AF_INET;
  end;
  with ICMPhdr do begin
    i_type:=ICMP_ECHO;
    i_code:=0;
    i_id:=Ushort(GetCurrentProcessId);
    i_chksum:=0;
    i_seq:=0;
    timestamp:=GetTickCount;
    FillChar(data[0],32,0);
  end;

  DataSize:=Sizeof(icmphdr);
  Result:=not(sendto(Sock,ICMPhdr,DataSize,0,@Addr,Sizeof(TSockAddrIn))=SOCKET_ERROR);
  if not Result then exit;

  Result:=not(recvfrom(Sock,ICMPhdr,DataSize,0,@Addr,fromlen)=SOCKET_ERROR);
  if not Result then begin
    Writeln('Error! RecvReason: '+SysErrorMessage(WSAGetLastError));
    exit;
  end;

  closesocket(Sock);
  WSACleanup;
end;

end.
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: IP - Hardcore

  Alt 24. Jan 2006, 14:13
Nope. Ich hatte bisher keine Lust mich damit zu beschäftigen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von retnyg
retnyg

Registriert seit: 12. Feb 2005
193 Beiträge
 
#17

Re: IP - Hardcore

  Alt 2. Feb 2006, 16:56
wenn du rausfinden willst warum dein code nicht funzt solltest du mal bei jeder zeile mit einem winsock-kommando den rückgabewert (typ INTEGER, nicht boolean) auf SOCKET_ERROR prüfen, und falls dem so ist die WSAGetLastError msg anzeigen lassen

bzgl wie mahct ethereal das: http://winpcap.polito.it

und btw: raw sockets mit winsock kann man nur mit admin rechten ausführen, was das ganze sehr unattraktiv macht
  Mit Zitat antworten Zitat
nitschchedu

Registriert seit: 24. Mär 2006
300 Beiträge
 
Delphi 7 Professional
 
#18

Re: IP - Hardcore

  Alt 6. Dez 2006, 13:11
Mich interessiert mal ober ihr das hinbekommen habt ?
Bau auch gerade daran ^^ doch ich empfange nichts .
Programmieren ..... .
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 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