![]() |
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:
Ich möchte hier z.B. nur:
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) 217.72.192.168 81.209.148.77 Danke Gruß Daniel |
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 :) |
Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
Danke habs schon ;)
Delphi-Quellcode:
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.
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; |
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 :)
|
Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
Aber einfacher ;) und ich hab keine Zeit LOL
|
Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
@dizzy
Zitat:
|
Re: Alle IP-Adressen aus einem e-Mail-Header auslesen, aber
entfernt
|
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