socket sistemas que puertos introduccion interfaz familias distribuidos direccion aplicacion networking language-agnostic ip

networking - sistemas - ¿Cómo hago un socket de salida a una interfaz de red ESPECÍFICA?



sockets pdf (3)

Sin duda, puede vincular un socket a un dispositivo específico.

No sé cómo hacerlo en Python, pero usando la aplicación apk de berkeley (en C) necesita llamar a setsockopt() , usando la opción SO_BINDTODEVICE .

Usted struct ifreq un descriptor de interfaz, que es de tipo struct ifreq . Idealmente, obtendría el contenido del descriptor de interfaz utilizando ioctl() y solicitando SIOCGIFINDEX , pasando el nombre de la interfaz (por ejemplo, eth0) como argumento.

editar: hice una búsqueda rápida y encontré esta documentación de los métodos de socket en python. setsockopt() es uno de ellos.

Tengo un servidor con dos interfaces de red diferentes, cada una con una dirección IP diferente. ¿Cómo puedo crear un socket para que salga una dirección IP específica?

Preferiría un ejemplo de pitón, pero la pregunta es independiente del idioma, así que dispara.

EDITAR: Por favor no me des "No puedes" como respuesta. Quiero decir, es una computadora. Puedo hacer cualquier cosa que me guste, por ejemplo, puedo desactivar programáticamente la única interfaz que no quiero sobre la marcha. Estoy buscando algo más bonito.


Solo una pequeña nota: lo que realmente necesitaba era enlazar a una dirección IP específica, y para completar, la solución es unir el socket después de la creación. Fuente en python:

import socket s = socket.socket() s.bind(("127.0.0.1", 0)) s.connect(("321.12.131.432", 80))


import socket s = socket.socket() s.bind((get_ip_address(''eth0''), 0))

de Quora