I am trying to bind hosts to specified ips in my python program. Just make it affect in the python program, so I am not going to modify the /etc/hosts
file.
I tried to add a bit code to the create_connection
function in socket.py
for host-ip translation, like this:
host, port = address # the original code in socket.py
# My change here:
if host == "www.google.com":
host = target_ip
for res in getaddrinfo(host, port, 0, SOCK_STREAM): # the original code in socket.py
I found it works fine.
And now I want the host-ip translation only works in this python program.
So my question is: how can I make my python program import this socket.py not the build-in one when using import socket
?
To make it clear, here is an example. Suppose 'test' is my work directory:
test
|--- main.py
|--- socket.py
In this case:
How can I make main.py use test/socket.py by
import socket
?How can I make another modules use test/socket.py when they are using
import socket
?
I think changing the module find path order may help. But I found that even if the current path(''
) is in the first place of sys.path
already and import socket
still imports the built-in scoket module.