Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Socket "anzapfen" bzw Firewall

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.05.2003, 11:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
ich möchte ein Programm schreiben, welches eine bestimmte Anwendung überprüft ob es eine Verbindung zu einer bestimmten Adresse aufgenommen hat (z.b. www.fun-soft.de, Port 80). Sobald dies geschehen ist möchte ich der Anwendung ein paar WM-Nachrichten senden (was kein Problem darstellt, nur wie kann ich überprüfen ob es eine Verbindung mit einer bestimmten Adresse hat?)
--
class God : public ChuckNorris { };

Dieser Post wurde am 16.05.2003 um 12:49 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.05.2003, 19:16 Uhr
mike
Pinguinhüpfer
(Operator)


Hi Flo,
hab folgendes sample gefunden:
http://codeguru.earthweb.com/network/ipmon.html
Das hat bei mir ergeben, dass eine Anfrage von
192.168.1.33 (mein PC) zu 194.97.107.171 (fun-soft.de) gemacht wurde. Wie man jedoch rausfinden kann, welches Programm das verursacht hat, wird ziemlich schwer gehen. Vielleicht musst du im Speicher nachschaun. Da gabs mal auf codeproject so ein Sample, bei dem für Minesweeper die Variablen ausgelesen wurden. Vielleicht hilft dir das weiter.

Mit AfxParseURL kannst du folgende Protokoll Typen erkennen - aber der Port ist unbekannt:
AFX_INET_SERVICE_FTP
AFX_INET_SERVICE_HTTP
AFX_INET_SERVICE_HTTPS
AFX_INET_SERVICE_GOPHER
AFX_INET_SERVICE_FILE
AFX_INET_SERVICE_MAILTO
AFX_INET_SERVICE_NEWS
AFX_INET_SERVICE_NNTP
AFX_INET_SERVICE_TELNET
AFX_INET_SERVICE_WAIS
AFX_INET_SERVICE_MID
AFX_INET_SERVICE_CID
AFX_INET_SERVICE_PROSPERO
AFX_INET_SERVICE_AFS
AFX_INET_SERVICE_UNK

mfg mike
--

Dieser Post wurde am 16.05.2003 um 19:26 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.05.2003, 22:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hmm schön und gut, nur wenn ich nicht rausfinden kann darüber,
1. welche anwendung
und
2. welcher port,
nützt das mir nichts, da es genau das ist was ich brauche...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.05.2003, 23:12 Uhr
virtual
Sexiest Bit alive
(Operator)


Viele der og Protocolle verwenden feste Ports, das ist das schöne an standardisierungen www.networksorcery.com/enp/protocol/ip/ports00000.htm
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.05.2003, 07:15 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Irgendwie scheint es mir ich hab mich noch nicht klar ausgedrückt:

Programm1 (Adresse lokal, Port unbekannt) ---- Internet ---- Server (Adresse fest, Port fest)

Programm2 (eigenes) --^ (überprüft die obige Verbindung nach einem bestimmten String, wenn gefunden, soll es selbst etwas über die bestehende(!) Verbindung etwas an den Server senden.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.05.2003, 12:25 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Vielleicht helfen dir diese Links weiter:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ics/ics/adding_and_removing_port_mappings_c_.asp

Muss mir mal die SDK saugen...
mfg mike
PS: Soll das eigentlich eine richtige Firewall werden?
--

Dieser Post wurde am 17.05.2003 um 12:26 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.05.2003, 12:57 Uhr
mike
Pinguinhüpfer
(Operator)


Damit anschließend keine Missverständnisse auftreten
Der obige Link wird deine Frage bestimmt nicht beantworten, aber meiner Meinung nach wird dort brauchbarer Source zum Thema Firewall geboten.


Das Bild zeigt alle Programme, welche mit dem Internet eine TCP Verbindung aufgenommen haben:

Mit den Callbackfunkionen sollte zumindest das möglich sein

mfg mike
--

Dieser Post wurde am 17.05.2003 um 12:58 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.06.2003, 17:32 Uhr
sabmarren



Hi,
dafür brauchst Du die Process-ID.
Siehe doch mal bei Netstat, da ist zu IP + Port die Process id hinterlegt.

Das macht man dann mit Hilfe undokumentierter functions in
der iphlpapi.dll:

DWORD (WINAPI *pAllocateAndGetTcpExTableFromStack)(
PMIB_TCPEXTABLE *pTcpTable, // buffer for the connection table
BOOL bOrder, // sort the table?
HANDLE heap,
DWORD zero,
DWORD flags
);

DWORD (WINAPI *pAllocateAndGetUdpExTableFromStack)(
PMIB_UDPEXTABLE *pTcpTable, // buffer for the connection table
BOOL bOrder, // sort the table?
HANDLE heap,
DWORD zero,
DWORD flags
);

Weiter brauchst du die Structuren:
typedef struct _MIB_TCPROW_EX
{
DWORD dwState; // MIB_TCP_STATE_*
DWORD dwLocalAddr;
DWORD dwLocalPort;
DWORD dwRemoteAddr;
DWORD dwRemotePort;
DWORD dwProcessId;
} MIB_TCPROW_EX, *PMIB_TCPROW_EX;

typedef struct _MIB_UDPROW_EX
{
DWORD dwLocalAddr;
DWORD dwLocalPort;
DWORD dwProcessId;
} MIB_UDPROW_EX, *PMIB_UDPROW_EX;


typedef struct _MIB_TCPTABLE_EX
{
DWORD dwNumEntries;
MIB_TCPROW_EX table[ANY_SIZE];
} MIB_TCPTABLE_EX, *PMIB_TCPTABLE_EX;
typedef struct _MIB_UDPTABLE_EX
{
DWORD dwNumEntries;
MIB_UDPROW_EX table[ANY_SIZE];
} MIB_UDPTABLE_EX, *PMIB_UDPTABLE_EX;



Das ganze wir so geprogt , wie bei der bekannten Function
GetTcpTable(...) oder GetUdpTable(...)

Den Processnamen kannst natürlich auch mit Hilfe PID herausbekommen.
Via PID kannst dann deine Messages an den Process senden.

Gruss
sabmarren
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.06.2003, 17:38 Uhr
sabmarren



Hi noch einmal kurz

funktioniert nur bei xp soviel ich weiss.
Kannst das ganze natürlich drehen und über die PID feststellen, ob
eine Anwendung an einem port horcht oder ESTABLISHED zu ist und
zu welcher ip (url) connected ist.
Ganz nach geschmack und lust.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: