2010-06-13 3 views
0

나는 각 iface에 대한 다른 정보와 함께 외부 IP 주소를 가져 오는 스크립트를 작성 중입니다. 루비가 특정 iface (예를 들어 eth0와 wlan0)를 통해 트래픽을 보내는 방법을 알아낼 수 없습니다. 현재 열려있는 -URL 라이브러리를 사용하여 http://whatismyip.org을 열고 변수로 읽습니다.루비가 특정 iface를 통해 네트워크 트래픽을 보내도록 할 수 있습니까?

def get_external_ip 
    begin 
    open("http://whatismyip.org") { |f| return f.read } 
    rescue 
    return "none" 
    end 
end 

스크립트의 런타임이나 스크립트 자체 (이상적)에서 지정할 수있는 방법이 있습니까?

답변

0

확인할 수 있습니다. tutorial on Ruby Socket programming. 그러나 나는 그것이 높은 수준에서 open처럼 할 수 있다고 의심합니다. 인터페이스는 대상 IP에 따라 라우팅 테이블에서 정상적으로 선택됩니다. 라우팅 테이블을 고치거나 조정하는 것이 더 쉬울 수도 있습니다.

관련 문제