EDIT: Như được chỉ ra, thực sự có thể chỉ định giao diện mạng từ quy trình người dùng. Tôi đứng sửa. Tuy nhiên, tôi vẫn chưa tìm thấy một mô-đun cho phép nó với nút.
Theo mặc định, giao diện mạng được xác định bởi bảng định tuyến OS.
Bạn có thể liệt kê bảng này với netstat -r
trên các hệ thống Unix (bao gồm OSX). Chỉ cần mở một thiết bị đầu cuối và gõ lệnh. Bạn sẽ nhận được một danh sách như:
laurent ~ $ netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 153 0 en0
127 localhost UCS 0 0 lo0
localhost localhost UH 2 42 lo0
...
Trường Netif
cung cấp cho bạn giao diện mạng được sử dụng cho tuyến đường. Bạn cũng có thể nhận được các giao diện sử dụng để đạt được một hostname với route
:
laurent ~ $ route get google.fr
route to: par03s02-in-f23.1e100.net
destination: default
mask: default
gateway: 192.168.1.1
interface: en0
flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0
Đây là thêm một điều serverfault, nhưng bạn có thể thay đổi các tuyến đường với lệnh route
. Ví dụ, giao thông ý chí tuyến đường này để X.Y.Z. [0-254] để X.Y.Z.254 trên eth0:
route add -net X.Y.Z.0/24 gw X.Y.Z.254 dev eth0
Nếu bạn muốn các tuyến đường để tồn tại khi khởi động lại, bạn có thể thêm chúng vào /etc/network/interfaces
. Nếu bạn muốn tải cân bằng giữa một số tuyến đường khác nhau, bạn cũng nên kiểm tra MPLS.
Nguồn
2012-11-28 11:20:35
Sau thời gian tôi hỏi câu hỏi này, tôi thấy đây có thể là cách tiếp cận tốt nhất. Tôi có thể nhóm các địa chỉ bằng os.networkInterfaces(). – Vicary