2017-07-07 50 views
0

/etc/hosts文件允許我們指定域的IP地址。node.js使用臨時/ etc/hosts設置發送http請求

例如,如果/etc/hosts文件的內容是這樣的:

127.0.0.1 www.mydomain.com 

這意味着www.mydomain.com代表127.0.0.1,當你在瀏覽器地址欄中鍵入www.mydomain.com

當發送請求http.get()而不修改/etc/hosts時是否可以指定一個IP地址域?

我在一個公共ubuntu機器上工作,很多人可以訪問/etc/hosts文件。所以最好不要修改/etc/hosts

options參數不支持此功能。我不想使用hostile,因爲它改變/etc/hosts

回答

0

您可能需要使用自己的http.AgentcreateConnection()。例如:

function customLookup(hostname, options, callback) { 
    if (typeof options === 'function') { 
    callback = options; 
    options = null; 
    } 
    // TODO: check `options` for options like `all` and `family` 
    if (hostname.toLowerCase() === 'www.mydomain.com') 
    return callback(null, '127.0.0.1'); 
    return dns.lookup(hostname, options, callback); 
} 

function createConnection(opts) { 
    opts.lookup = customLookup; 
    return net.createConnection(opts); 
} 

http.get({ 
    // ... 
    createConnection 
});