Adresse IP sortante de liaison pour chaque connexion effectuée par l’interpréteur Python

Je dois intégrer un script simple écrit en Python dans mon application C. Le script télécharge simplement certains contenus sur Internet, les parsing et imprime les résultats dans stdout. Je dois associer l’adresse IP sortante de chaque connexion établie par script pour utiliser de nombreuses adresses IP fournies avec un serveur. Je peux utiliser l’API Python / C ou les fonctions C system () / execve (). Je préfère ne pas modifier un script lui-même car il utilise liburl2 qui ne prend pas directement en charge la liaison IP locale.

Je serais reconnaissant pour chaque indice.

Cordialement, Michal Pietras.

Votre question est répondue ici: Interface source avec Python et urllib2

Vous pouvez obtenir l’adresse IP sortante en utilisant le package suivant,

outgoingip

Vous pouvez définir l’adresse IP sortante sans modifier le code source de python en exécutant simplement le code décrit ici en tant que chaîne dans l’interpréteur avant d’exécuter le code incorporé. Quelque chose comme ça fonctionnerait:

#include  int main(int argc, char *argv[]) { Py_SetProgramName(argv[0]); Py_Initialize(); PyRun_SimpleSsortingng ("import socket\n" "true_socket = socket.socket\n" "def bound_socket(*a, **k):\n" " sock = true_socket(*a, **k)\n" " sock.bind((127.0.0.1, 0))\n" " return sock\n" "socket.socket = bound_socket\n"); // Run embedded code here Py_Finalize(); return 0; } 

Bien sûr, vous remplaceriez 127.0.0.1 avec l’adresse IP source correcte.