Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Alle IP-Adressen aus einem e-Mail-Header auslesen, aber wie? (https://www.delphipraxis.net/21096-alle-ip-adressen-aus-einem-e-mail-header-auslesen-aber-wie.html)

DanielF 27. Apr 2004 21:36


Alle IP-Adressen aus einem e-Mail-Header auslesen, aber wie?
 
Hallo Leute,
könnt ihr mir vieleicht sagen, wie man aus einem e-Mail-Header alle IP-Adressen auslesen kann?

Header-Beispiel:
Code:
Return-Path: <wwwrun@dd1834.kasserver.com>
Delivered-To: ***
Received: (qmail 31931 invoked by uid 0); 27 Apr 2004 06:38:37 -0000
Received: from mx09.web.de (217.72.192.168)
  by turboliesel.planet-school.de with SMTP; 27 Apr 2004 06:38:37 -0000
Received: from [81.209.148.77] (helo=dd1834.kasserver.com)
   by mx09.web.de with esmtp (WEB.DE 4.101 #91)
   id 1BIMEM-0003QD-00
   for ***; Tue, 27 Apr 2004 08:38:10 +0200
Received: by dd1834.kasserver.com (Postfix, from userid 30)
   id 6AEBC1BA25; Tue, 27 Apr 2004 08:29:33 +0200 (CEST)
To: ***
Subject: ***
From: ***
Message-Id: <20040427062933.6AEBC1BA25@dd1834.kasserver.com>
Date: Tue, 27 Apr 2004 08:29:33 +0200 (CEST)
Ich möchte hier z.B. nur:
217.72.192.168
81.209.148.77

Danke
Gruß
Daniel

dizzy 27. Apr 2004 22:48

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
Da ist vermutlich selber parsen angesagt. Am einfachsten wäre es den Header als Text Zeichen für Zeichen durchzuwandern, und alles, was wie eine IP aussieht als solche zu akzeptieren. Gemein ist hierbei die variable Länge (1.1.1.1 oder 255.255.255.255), wobei es gewisse Regeln gibt, an die man sich halten kann. Es gibt Standardbelegungen, die man ausschließen könnte. Ich weiss nur net, wo ich die jetzt mal eben einsehen könnte ;)
192.x.x.x ist auf jeden Fall für LAN's reserviert, und 127.x.x.x für lokale Klamotten. Das wären so zwei Kandidaten.


mfg,
dizzy

\\edit: Wobei es in E-Mail-Headern wohl nicht zu Konstrukten kommen dürfte, die nicht wie eine IP aussehen. Ausser jemand gibt eine solche als Emailadresse ein (wäre schick!: 81.132.55.211@t-online.de :mrgreen: ), oder als subject. Jedoch stehen die IPs immer in "()" oder "[]". Das ist zwar keine 100%ige Sicherheit, aber es dürfte recht selten vorkommen, dass jemand [29.254.12.133] als subject eingibt :)

DanielF 27. Apr 2004 22:52

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
Danke habs schon ;)

Delphi-Quellcode:
procedure ExtractIPs (const AInputString : string; stringliste: TStringList);

 const
  IPRE = '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';
 var
  r : TRegExpr;
 begin
  stringliste.Clear;

  r := TRegExpr.Create;

  try
     r.Expression := IPRE;
     if r.Exec (AInputString) then
      REPEAT
       stringliste.Add(r.Match [0]);
      UNTIL not r.ExecNext;
    finally r.Free;
   end;
 end;
Ich schreibe nämlich gerade ein Tool, das anhand von DNS Blacklists Spam aus Imap- und Pop3-Accounts ausließt und dann nach Wunsch löscht.

dizzy 27. Apr 2004 22:53

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
Ach, mit regulären Ausdrücken isch das doch öde :angle: ...kann ja jeder :)

DanielF 27. Apr 2004 22:54

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
Aber einfacher ;) und ich hab keine Zeit LOL

horst 28. Apr 2004 00:21

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
@dizzy
Zitat:

Ich weiss nur net, wo ich die jetzt mal eben einsehen könnte
*lol*

DanielF 28. Apr 2004 23:37

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
entfernt

Luckie 28. Apr 2004 23:38

Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
 
Zum Testen gibt es die entsprechende Freeware bzw OpenSource Sparte. Bitte stell dein Projekt dort vor. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.

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