我需要将一个用Python编写的简单脚本嵌入到我的C应用程序中。该脚本只是从Internet下载一些内容,解析它并将结果打印到stdout。我需要绑定脚本所做的每个连接的传出IP地址,以利用服务器提供的许多IP地址。我可以使用Python / C API或C system()/ execve()函数。我更喜欢不修改脚本本身,因为它使用的liburl2不支持直接绑定本地IP。
我会很感激每一个提示。
此致 Michal Pietras。
答案 0 :(得分:1)
您的问题在这里得到解答:Source interface with Python and urllib2
答案 1 :(得分:0)
您可以使用以下软件包获取传出IP,
答案 2 :(得分:0)
在运行嵌入式代码之前,只需在解释器中执行here描述的字符串代码即可完成编辑python源代码的设置输出IP地址。像这样的东西会起作用:
#include <Python.h>
int main(int argc, char *argv[]) {
Py_SetProgramName(argv[0]);
Py_Initialize();
PyRun_SimpleString
("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;
}
当然,您可以使用正确的源IP地址替换 127.0.0.1 。