récupérer le stdout

Hello le monde!
Quelqu’un pourrait il m’expliquer, comment récupérer le stdout d’un script lancer avec argparse?
merci

Bonjour,

Je pense ne pas comprendre la question, pourrais-tu donner un petit exemple explicite ?

Bonsoir.

Le plus simple serait un cas d’utilisation.

Bonjour,
je voulais lancer une commande Amass ( qui est en GO) qui récupère tous les sous domaine d’un site, depuis un script python

$ amass intel -d owasp.org -whois
    appseceu.com
    owasp.com
    appsecasiapac.com
    appsecnorthamerica.com
    appsecus.com
    [...]

et récupérer la sortie stdout produite, dans une variable python, pour l’exploitée dans mon script.

Je ne voit pas d’argparse ici, je pense que tu peux utiliser subprocess.run :

from subprocess import run, PIPE

proc = run(["amass", "intel", "-d", "owasp.org", "-whois"], stdout=PIPE)
print(proc.stdout)

Regarde aussi du côté de :

Qui ont le bon goût d’être implémentés en Python. Pas de religion ou de fanatisme ici : c’est du bon goût car si tu veux améliorer la chose tu peux facilement faire une PR : c’est déjà dans le langage que tu pratique. Et si c’est pas trop mal designé tu peux même importer un module de leur projet pour interagir avec directement depuis ton code plutôt qu’avoir à forker.

(Et c’est pas parce que c’est écrit en go, ou autre langage hype d’un GAFA que ton réseau ira plus vite, le temps d’exécution de ce genre de programme est limité par la vitesse de ton réseau, pas de ton CPU.)

1 « J'aime »

Merci mdk.
Actuellement j’utilise dnsrecon, mais je voulais comparer avec Amass, car un ami qui bosse dans la sécurité m’a dit qu’Amass récupérait plus de sous domaine.
Sinon je serais resté en python.

mdk,
une question sur les langages, je ne connait que python et vba, mais pour les autres…
as tu une méthode ou un référentiel, pour choisir un langage?
faut t’il éviter les langage des GAFA, parce qu’ils aurait des hook d’espionnages ou des trucs comme ça?

Ma méthode actuelle c’est « Python est le 2ème meilleur langage pour faire ce que tu as à faire. », j’entend par là que pour chaque nouveau problème, soit tu apprends le langage le plus adapté pour résoudre ce nouveau problème, soit tu le fais en Python.

faut t’il éviter les langage des GAFA, parce qu’ils aurait des hook d’espionnages ou des trucs comme ça?

Non, ça se serait vu les “hooks d’espionnage” !

Ce qui m’inquiète le plus dans les langages comme go, … c’est la hype initiale due à la puissance (en com’) de l’entité qui le crée. Ça fait que certains langages particulièrement mauvais se retrouvent artificiellement propulsés sur un “podium” des langages les plus utilisés, que certains peuvent confondre avec le podium des meilleurs langages (prennons VBA par exemple, scripter en Python est longtemps resté top 1 des demandes de features sur Excel et maintenant en cours d’implémentation). VBA est d’ailleurs officiellement déprécié depuis 2007, mais continue à être distribué dans excel uniquement parce que les entreprises en sont dépendantes, pas parce que c’est un bon langage. On pourrait faire le même exemple avec Objective C, et pas mal d’autres j’imagine.

Donc quand un GAFA annonce un nouveau langage, en sous-entendant parfois que les applications sur son store devront être implémentées dans ce langage, j’emmet un doute : c’est pas une preuve de qualité.

Pour revenir à go, passé la hype initiale, le langage sort déjà de l’index TIOBE et descend doucement sur les stats stackoverflow :

et du coup, une méthode, un bouquin ou autre chose, pour déterminer le meilleur langage pour ce que l’on a à faire?

Je suis totalement d’accord pour les GAFA, mais j’ai l’impression que c’est eux qui peuvent mettre le plus d’argent et donc de ressources dans des nouveaux langages.

As-tu un cas d’usage en tête? Tu fais le choix pour toi-même ? Pour un projet ou pour une équipe? Quelles sont les contraintes / objectifs / temporalités / passions?

Il y a souvent une bonne partie de préférence personnelle / institutionnelle / d’équipe dans un choix de langage. Après Python et VBA j’imagine qu’il est bien d’apprendre un langage compilé comme Java / C / Rust. Si t’as envie de faire du web frontend alors il faut à priori apprendre HTML + CSS + Javascript et meme pour faire du backend c’est bien d’avoir des notions front…

Mais si tu n’as pas de besoin pressant pour un autre langage peut-être choisir plutôt d’apprendre un framework python qui te sera directement utile/ interessant ou un techno complémentaire tel SQL…