1
votes

Extraire l'URL d'un fichier

J'essaye d'extraire l'URL d'un fichier qui a le format suivant.

wwwqa.xyz.abc.com
origin.xyz.abc.com
wwwmg4.xyz.abc.com

J'ai trouvé le script python mais en cela, j'obtiens l'URL et l'IP mais je besoin de la seule URL.

wwwqa.xyz.abc.com
1.1.1.1
origin.xyz.abc.com
1.1.1.1
wwwmg4.xyz.abc.com
1.1.1.1

après avoir exécuté le script, j'obtiens la sortie suivante.

import re

file_path = input("Enter the File Path: ")
f = open(file_path, 'r')
raw_text= str(f.readlines())
f.close()

domain = r"\b((?:https?://)?(?:(?:www\.)?(?:[\da-z\.-]+)\.(?:[a-z]{2,6})|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:(?:[0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,7}:|(?:[0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|(?:[0-9a-fA-F]{1,4}:){1,5}(?::[0-9a-fA-F]{1,4}){1,2}|(?:[0-9a-fA-F]{1,4}:){1,4}(?::[0-9a-fA-F]{1,4}){1,3}|(?:[0-9a-fA-F]{1,4}:){1,3}(?::[0-9a-fA-F]{1,4}){1,4}|(?:[0-9a-fA-F]{1,4}:){1,2}(?::[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(?:(?::[0-9a-fA-F]{1,4}){1,6})|:(?:(?::[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(?::[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(?:ffff(?::0{1,4}){0,1}:){0,1}(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])|(?:[0-9a-fA-F]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(?:25[0-5]|(?:2[0-4]|1{0,1}[0-9]){0,1}[0-9])))(?::[0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])?(?:/[\w\.-]*)*/?)\b"
foundip = re.findall( domain, raw_text )
for ip in foundip:
      print(ip)

Résultat souhaité.

[CertSpotter]     wwwqa.xyz.abc.com,1.1.1.1
[CertSpotter]     origin.xyz.abc.com,1.1.1.1
[CertSpotter]     wwwqa.xyz.abc.com,1.1.1.1
[CertSpotter]     wwwmg4.xyz.abc.com,1.1.1.1

Quelqu'un peut-il m'aider à comprendre cela?

Merci


2 commentaires

il vous suffit de vous assurer que le motif a une fin de correspondance com $


@MikeTung mais si j'ajoute le com $, il vérifiera net les domaines .net ou .org, etc. J'ai besoin de vérifier toutes les extensions.


3 Réponses :


0
votes

Sans Regex. En utilisant uniquement les méthodes str .

Ex:

wwwqa.xyz.abc.com
origin.xyz.abc.com
wwwqa.xyz.abc.com
wwwmg4.xyz.abc.com

Sortie: p>

with open(filename) as infile:
    for line in infile:
        val = line.strip().split()[-1].split(",")[0]
        print(val)


1 commentaires

merci pour la solution qui a fonctionné pour moi. Maintenant, je vais faire les modifications ultérieures.



0
votes
['wwwqa.xyz.abc.com', 'origin.xyz.abc.com', 'wwwqa.xyz.abc.com', 'wwwmg4.xyz.abc.com']

0 commentaires

0
votes
['wwwqa.xyz.abc.com', 'origin.xyz.abc.com', 'wwwqa.xyz.abc.com', 'wwwmg4.xyz.abc.com']

0 commentaires