ПредишенСледващото

Поздрави, скъпи Експерти!
Вие трябва да напишете програмата сходство обучени трябва пасивно да слушате до определено пристанище (той е известен предварително, което е свързано с наблюдение на програмата, не е необходимо да се) да бъде толкова просто, колкото е възможно и да не замръзва. Запазване не трябва да бъде всичко и навсякъде. С помощта на специално обучени е получил информация, че са слушане на програмата комуникира със сървъра с помощта на HTTP или UDP, трябва да се улови, и това и това.
Какво е най-лесният за изпълнение е в Делфи?
Благодаря за помощта.

Тата за дебилност система? ACC е създадена, за да отговори на собствения си въпрос.
Вероятен вид, че ако хората попитах какво решения Е, аз не намирам.
Ами смешно.

  1. употреби
  2. .
  3. конст
  4. sHEADER = '[TIME] [Prot PLEN] [Източник IP: Port] [Цел IP: Port] [услуга] [DLEN] [Packet] [Data] ";
  5. SPL = '% -12s% -4s% 4d% -20s>% -20s% -12s% 4d% S';
  6. тип
  7. TForm1 = клас (TForm)
  8. RichEdit1: TRichEdit;
  9. Memo1: TMemo;
  10. Label1: TLabel;
  11. процедура FormCreate (Sender: TObject);
  12. процедура FormDestroy (Sender: TObject);
  13. частен
  14. _monRawSocket: TMonitorSocket;
  15. процедура Initialize ();
  16. процедура GetPacket (Sender: TObject; PacketInfo: TPacketInfo);
  17. обществен
  18. приключи;
  19. Var
  20. Form1: TForm1;
  21. изпълнение
  22. процедура TForm1.FormCreate (Sender: TObject);
  23. започвам
  24. Initialize ();
  25. Memo1.Lines.Clear;
  26. Memo1.Lines.Add (LocalIpList [0]);
  27. приключи;
  28. процедура TForm1.FormDestroy (Sender: TObject);
  29. започвам
  30. _monRawSocket.Free;
  31. приключи;
  32. процедура TForm1.Initialize;
  33. започвам
  34. _monRawSocket: = TMonitorSocket.Create (самостоятелно);
  35. _monRawSocket.OnPacketEvent: = GetPacket;
  36. _monRawSocket.StartMonitor;
  37. RichEdit1.Lines.Clear;
  38. RichEdit1.SelAttributes.Color: = clMaroon;
  39. RichEdit1.Lines.Add (sHEADER);
  40. приключи;
  41. процедура TForm1.GetPacket (Sender: TObject; PacketInfo: TPacketInfo);
  42. Var
  43. _srcIP, _distIP. String;
  44. _A, _b: низ;
  45. започвам
  46. SetLength (PacketInfo.DataBuf, 96);
  47. _b: = PacketInfo.DataBuf;
  48. StringRemCntls (_b);
  49. ако PacketInfo.EtherProto = PROTO_IP тогава
  50. започвам
  51. _srcIp: = IPToStr (PacketInfo.AddrSrc) + ':' + IntToStr (PacketInfo.PortSrc);
  52. _distip: = IPToStr (PacketInfo.AddrDest) + ':' + IntToStr (PacketInfo.PortDest);
  53. ако PacketInfo.ProtoType = IPPROTO_ICMP тогава
  54. _A: = Формат (SPL,
  55. [TimeToZStr (PacketInfo.PacketDT),
  56. GetIPProtoName (PacketInfo.ProtoType),
  57. Spl,
  58. _srcIp,
  59. _distIp,
  60. малки (GetICMPType (PacketInfo.IcmpType)),
  61. PacketInfo.DataLen, _b])
  62. още
  63. започвам
  64. ако (PacketInfo.DataLen = 0), тогава
  65. _b: = GetFlags (PacketInfo.TcpFlags);
  66. _A: = Формат (SPL,
  67. [TimeToZStr (PacketInfo.PacketDT),
  68. GetIPProtoName (PacketInfo.ProtoType),
  69. PacketInfo.PacketLen,
  70. _srcIp,
  71. _distIp,
  72. Малки букви (GetServiceNameEx (PacketInfo.PortSrc, PacketInfo.PortDest)),
  73. PacketInfo.DataLen, _b]);
  74. приключи;
  75. край
  76. още
  77. започвам
  78. _A: = Формат (SPL,
  79. [TimeToZStr (PacketInfo.PacketDT),
  80. GetEtherProtoName (PacketInfo.EtherProto),
  81. PacketInfo.PacketLen,
  82. MacToStr (PacketInfo.EtherSrc),
  83. MacToStr (PacketInfo.EtherDest),
  84. ''
  85. PacketInfo.DataLen,
  86. _b]);
  87. приключи;
  88. RichEdit1.Lines.Add (_A);
  89. приключи;

издадат мини-форум

Отговаряйте някого.
Prompt тук Indy употреба, WinPcap като равенство, или други възможности има?

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

Инди не помага. (Освен ако не напишете своя пълномощник).
Ако просто искате да следите движението - по-добре е да изтеглите Wireshark себе си - той otmonitoreny и по рафтовете на магазините и гниене.

Tick ​​"прочете потвърждение" - универсален зло.

Не се нуждаят от нея в моя прог, Wireshark, което имам.
Налице е също така VoicedSniffer, който е направен, за да Delphi и аз не бих казал, че виси. WinPcap шофьор не е инсталиран, но това е как тя работи.

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

За инди изглежда, че е така. Вчера облече формата на всички компоненти, които се отнасят до UDP, HTTP, TCP, нито каквито и да било бита не са получени. Тя изглежда да има vinpikapom цигулка.

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

След седи в продължение на няколко дни в интернет открих, че без vinpikapa прескочена. Лежах на кода, който изведнъж дойде по-удобно. Ако имате много адаптери в него система за сортиране на себе си. Sniffer просто като една стотинка, не изключвам обработени. Ако трябва да се отговори (програмно естествено) на събитията в клиентското приложение на сървъра след това просто добавете ограничение от IP, за да получите данни само от правилния сървър.

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

Да, защо да щях да забравя да обясни новак X-Men, че кода, за да добавите към секцията Употреби от следните неща:

Monsock, WSocket, Packet32, Winsock, Magsubs1, Packhdrs

Всъщност файловете, които търсите в интернет хвърля в папката с проекта, ние хвърлят под формата на бележка и RichEdit, и препращат към светло бъдеще

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

И Все пак, тя има един прост и замръзва.

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

приключи;
Е, сега всичко база там, а след това мисля за себе си.

Вярвайте в извънземни цивилизации не е средство за вярват в извънземни.

Подкрепете проекта - споделете линка, благодаря!