Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Domain Klasse zum Aufschlüsseln der Bestandteile

Mitglied: 70620

70620 (Level 1)

24.07.2009, aktualisiert 10:03 Uhr, 3647 Aufrufe, 7 Kommentare

Ich suche eine Domainklasse oder auch Funktion, welche mit eine Domain aufschlüsseln kann nach Subdomain, Name und TLD.

Wie oben erwähnt, ich will eine Domain aufschlüsseln. Ich möchte die Subdomain herausfinden können oder auch die TLD.
Im Prinzip nichts schweres, hat man eine Domain wie www.domain.de. Dieser Fall ist der häufigste, aber deswegen sollte man die anderen nicht ignorieren.

- was ist bei 2 subdomains?
- was ist bei einer doppelten (oder dreifachen) TLD?

Hier also einige Beispiele an denen das Ding laufen sollte:
- domain.de
- domain.co.uk
- www.domain.co.uk
- subdomain.domain.co.uk
- sub2.subdomain.domain.co.uk

Ich habe ewig gesucht bisher.. leider erfolglos. Die einzige Sache die ich gefunden habe ist leider nur noch als Artikel online und der Download geht nicht mehr.

Irgendwo muss es sowas geben, ich kann mir nicht vorstellen, dass noch niemand an dem Problem saß.

danke im voraus
Mitglied: Supermax
25.07.2009 um 09:50 Uhr
So einfach wird das leider nicht gehen, da das international uneinheitlich geregelt ist, und in einigen Ländern beide Varianten möglich sind, z.B. in Österreich können Domains sowohl direkt unter .at als auch unter .co.at oder .or.at registriert werden (.gv.at und .ac.at sind für Regierungs- und Bildungseinrichtungen reserviert).

Am einfachsten wäre wohl, hier mit einer Liste von regulären Ausdrücken zu arbeiten.
Bitte warten ..
Mitglied: Guenni
25.07.2009 um 21:13 Uhr
Hi fiacyberz,

TLDs sind ja registriert und somit festgelegt. Diese würde ich in einem Array ablegen.

Anschließend wird die URL in einem Array gespeichert.

Das URL-Array wird von hinten nach vorne Element für Element mit den Elementen des TLD-Arrays

verglichen. Gibt es eine Übereinstimmung, so ist es eine TLD und wird als solche ausgegeben.

Nach der/den TLD(s) folgt ja der Domainname.

Anschließend werden, falls vorhanden, die Subdomains ausgegeben.


01.
<?php 
02.
 
03.
function split_url($url){ 
04.
 /* 
05.
 Ein Array mit allen bekannten TLDs. 
06.
 */ 
07.
 $tld_list[]="de"
08.
 $tld_list[]="uk"
09.
 $tld_list[]="at"
10.
 $tld_list[]="com"
11.
 $tld_list[]="co"
12.
 $tld_list[]="eu"
13.
 //u.s.w. 
14.
  
15.
 /* 
16.
 Die übergebene URL wird in einem Array 
17.
 gespeichert 
18.
 */ 
19.
 $url_array=explode(".",$url); 
20.
  
21.
 /* 
22.
 Anzahl der Array-Elemente speichern 
23.
 */ 
24.
 $count=count($url_array); 
25.
  
26.
 /* 
27.
 Da ja nur die TLDs registriert und somit bekannt sind, 
28.
 gehen wir das URL-Array Element für Element von hinten nach 
29.
 vorne durch, und prüfen, ob das Element in dem TLD-Array vorhanden 
30.
 ist. Die Variable $t zählt die gefundenen TLDs. 
31.
 */ 
32.
 $t=1; 
33.
 for($i=$count;$i>=0;$i--){ 
34.
  foreach($tld_list as $tld){ 
35.
	 if($url_array[$i]==$tld){ 
36.
	  echo "Tld $t: ".$url_array[$i]."<br>"
37.
		$t++; 
38.
		/* 
39.
		Immer, wenn eine TLD gefunden wurde, wird ($i-1) in $j gespeichert. 
40.
		Den Wert müssen wir uns "merken", weil wir ab der Position im URL-Array 
41.
		den Rest ausgeben.  
42.
		*/ 
43.
		$j=$i-1; 
44.
45.
46.
47.
 /* 
48.
 Nach den TLDs erfolgt die Ausgabe der Domain 
49.
 */ 
50.
 echo "Domainname: ".$url_array[$j]."<br>"
51.
  
52.
 /* 
53.
 Nach Ausgabe der Domain erfolgt die Ausgabe der Subdomain(s). 
54.
 Dazu wird von $j eine 1 abgezogen, denn ab der Position machen wir 
55.
 weiter. Variable $s zählt die Subdomains. 
56.
 */ 
57.
 $j--; 
58.
 $s=1; 
59.
 for($i=$j;$i>=0;$i--){ 
60.
  echo "Subdomain $s: ".$url_array[$i]."<br>"
61.
	$s++; 
62.
63.
64.
 
65.
$url="sub3.sub2.sub1.domainname.co.uk"
66.
 
67.
echo "URL: $url<br><br>"
68.
 
69.
/* 
70.
Ausgabe der URL-Elemente 
71.
*/ 
72.
split_url($url); 
73.
?>
Gruß
Günni
Bitte warten ..
Mitglied: 70620
27.07.2009 um 09:58 Uhr
Das schaut schonmal sehr gut aus, danke.

Ein Problem dabei dürfte nur die Geschwindigkeit bzw Prozessorauslastung sein, da dieses häufiger aufgeführt werden wird. Diese Lösung hatte ich halb auch schon gebaut, allerdings noch ein wenig langsamer. Nur immer ein Array mit hunderten Einträgen zu durchlaufen kostet extrem Zeit.

Wir lösen das Problem aktuell über die Datenbank indem wir eine größere Tabelle erzeigt haben. Dies klappt noch solange keine große Last auf dem Server ist.

Ich schau mir deine Lösung nochmal genauer an und teste auf Performance.
Danke jedenfalls.
Bitte warten ..
Mitglied: Guenni
28.07.2009 um 21:49 Uhr
Hi,

wieviel ist denn für dich extrem Zeit?

Nachfolgender Code-Schnipsel erzeugt ein Array mit

30000 zufälligen, dreistelligen Strings.

Anschließend wird das Array nach einer beliebigen

Zeichenkette durchsucht und bei Übereinstimmung wird/werden

das/die gefundene(n) Element(e) ausgegeben:

01.
<?php 
02.
srand(microtime()*1000000); 
03.
for($i=0;$i<30000;$i++){ 
04.
 $zufall[] = chr(rand(65,91)).chr(rand(65,91)).chr(rand(65,91)); 
05.
06.
$i=0; 
07.
foreach($zufall as $el){ 
08.
 if("AYK"==$el){ 
09.
  echo "Gefunden: ".$zufall[$i]."<br>"
10.
11.
 $i++; 
12.
13.
?>
Nach jedem Klick auf Aktualisieren dauert es ca. 1 Sekunde, bis

das Skript 30000 Array-Elemente via Zufalls-Funktion neu erstellt

und anschließend durchsucht hat.


Jetzt zähl mal, wieviele TLDs du kennst. Das Array, das du damit füllen

kannst, dürfte wohl im Bruchteil einer Sekunde durchsucht sein

Gruß
Günni
Bitte warten ..
Mitglied: 70620
28.07.2009 um 22:09 Uhr
Das Ganze soll in eine Online-API.
Am Anfang werden wir nur einige 10.000 Aufrufe am Tag haben, aber wer weiss wie das mit der Zeit so wird..

Aktuell muss die Datenbankvariante reichen.. mal schaun was passiert wenn mal richtig Traffic drauf läuft
Bitte warten ..
Mitglied: nxclass
29.07.2009 um 11:38 Uhr
Wenn Du in der Datenbank noch mitloggst wie oft ein Eintrag gefunden wurde, könntest Du die Reinfolge zum Durchsuchen der Einträge entsprechend festlegen und ggf. noch etwas Geschwindigkeit herausholen.

Ausserdem müsste man doch an der Häufigkeit der 'Domain-Schnipsel' erkennen können ob es sich um eine TLD handelt !?
Bitte warten ..
Mitglied: 70620
29.07.2009 um 23:59 Uhr
Stimmt guter Einwand...

.de wird wohl am häufigsten Aufgerufen.
Könnte man somit in eine 2. Tabelle auslagern und diese zuerst durchsuchen und nur bei Nicht.-Finden in der zweiten Tabelle suchen.

danke
Bitte warten ..
Ähnliche Inhalte
JavaScript

JQuery, neue Klasse an vorhandene Klasse hängen.

gelöst Frage von d4shoerncheNJavaScript4 Kommentare

Guten Tag, ich erstelle gerade eine neue Webpräsenz für unseren Verein und setze dort Joomla ein. In Joomla bekommt ...

C und C++

CoMarshalInterface Klasse nicht registriert

Frage von runner-ralfC und C++2 Kommentare

Hallo alle zusammen, Ich habe ein Programm das beim Starten folgenden Fehler ausspuckt. Schwerwiegender interner Fehler: CoMarshalInterface Klasse nicht ...

CSS

CSS Klasse für Multilevel Navigation

Frage von wescraven07CSS2 Kommentare

Moin Entwickler, bin noch Anfänger und habe folgende Frage: Ich habe ein Multilevelnavigation und will eine CSS Klasse schreiben ...

DNS

Komplexe DNS-Kette im Unternehmen aufschlüsseln . vom Client aus möglich ?

Frage von donnyS73lbDNS9 Kommentare

Hallo zusammen, wir haben hier eine sehr komplexe DNS-Kette im Unternehmen. Gibt es eine Möglichkeit, dass ich von meinem ...

Neue Wissensbeiträge
Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 StundeSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 StundeMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 StundeHardware2 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

MikroTik RouterOS

Mikrotik Advisory: Vulnerability exploiting the Winbox port

Information von colinardo vor 1 StundeMikroTik RouterOS

Brand aktuell: Eine Schwachstelle im Winbox-Port bei Mikrotik Routern erlaubt das Auslesen der User-Datenbank der Router. Patch ist aktuell ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux22 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...