How to bind socket to an interface in python (socket.SO_BINDTODEVICE missing)
python, sockets
Solution
If you don't understand the error message, it means you're referring a name `IN` which is not available at that point. Your code snippet is likely missing an import statement.
The socket module may not offer SO_BINDTODEVICE for portability reasons. If you are absolutely sure that you're running on Linux that supports it, try replacing it with it's numerical value, which is `25`:
s.setsockopt(socket.SOL_SOCKET, 25, "eth1"+'\0')
Or for python 3:
s.setsockopt(socket.SOL_SOCKET, 25, str("eth1" + '\0').encode('utf-8'))
Problem
This is probably a very simple thing. I'm new to python so don't crucify me. ``` s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, IN.SO_BINDTODEVICE, "eth1"+'\0') ``` the above command gives me: ``` NameError: name 'IN' is not defined ``` the only import I have is ``` import socket ```