2016-12-17 7 views
1

특정 인터페이스 또는 IP 주소를 통해 노드 js 앱을 강제 다운로드하려고합니다. wget을 리눅스에서 다른 인터페이스 또는 IP 주소로 노드 js 요청을 바인드하십시오.

이 같은 뭔가이 작업을 수행 할 수 있습니다

wget --bind-address=192.168.21.21 http://example.com 

또는 유사 컬과 :

curl --interface 192.168.21.21 --ipv4 http://example.com 

을 나는 현재 request 패키지를 사용하고 있지만 나는 볼 수 없습니다 비슷한 옵션과 내가 할 수 있다면 이것에서 변경할 수 있습니다.

노드 js 요청과 함께 IP 주소 또는 인터페이스에 다운로드를 바인딩하려면 어떻게해야합니까?

편집 : 댓글에있는 질문을 본 적이 있지만 요청시이 작업을 수행하는 방법에 대한 내 질문에 답변하지 못했고 내 앱에 서버/웹 존재 여부가 표시되지 않아 expressjs를 사용하지 않습니다.

+1

나는이 질문을 참조하고 있다고 생각합니다. http://stackoverflow.com/questions/9986220/bind-expressjs-to-a-specific-ip-address –

+1

[다음과 같은 경우에 네트워크 인터페이스를 지정하는 방법 Node.js의 net 요청?] (http://stackoverflow.com/questions/13602066/how-to-specify-a-network-interface-when-making-net-requests-from-node-js) – Tomalak

+1

를 참조하십시오. 내 편집, node.js 요청과 함께 솔루션을 찾고 있습니다. 배리 딕 (Barry Dick)이 언급 한 질문에 대한 나의 질문에 대한 답변이 있으면 구현 방법이 확실하지 않습니다. – user1464409

답변

0

나는 똑같은 요구 조건을 가지고 있었고 실제로 그렇게하기 쉽습니다.

(async() => { 

    let request = require('request-promise-native'); // (a promisified version of request module) 

    // This prints your machine's IP 
    console.log(await request({ uri: 'https://api.ipify.org' })); 

    // This prints '***.***.***.***' 
    console.log(await request({ uri: 'https://api.ipify.org', localAddress: '***.***.***.***' })); 

})(); 

가 (새 고정 IP ***.***.***.*** 교체)

참고 물론 이미 설정해야합니다 : 그냥 (가 http 모듈과 같은 옵션들) requestlocalAddress 옵션을 사용하여 고정 IP를 설정하고 OS에서 구성했습니다. 자세한 내용 here

auto ens3:0 
iface ens3:0 inet static 
    address ***.***.***.*** 
    netmask 255.255.254.0 

(다시 말하지만, 당신의 IP와 ***.***.***.*** 교체) : 경우 그것은 당신이 당신의 /etc/network/interfaces 파일의 끝에이를 추가 할 것 우분투 16.04으로, 사람을 도움이됩니다.