proxy.pacでのmyIpAddress()

Firefox 1.0だったか1.5だったかのときに、myIpAddress()が127.0.0.1しか返さなくなって、それ以来ションボリンヌだったんですが、昨日、となりのとなりの人にいわれて試してみたら、またちゃんと自分のIPアドレスが取れるようになってたす。

WindowsFirefox 2.0.0.6。

ただ、about:configでnetwork.dns.disableIPv6がfalseになってると、常に「::1」(IPV6ループバックアドレス)が返ってくるようなので、trueにする。

これで、自分のIPアドレスを元につながってるネットワークを判別して、今いるネットワークに応じてproxyを自動設定可能になったす。さようなら、Switch Proxy。

function FindProxyForURL(url,host) {
  var myipaddr = myIpAddress();
  var proxy    = 'DIRECT';

  if (isInNet(myipaddr, "10.6.25.0", "255.255.255.0")) {
    // Home
    proxy = findProxyHome(url,host);
  } else if (isInNet(myipaddr, "10.10.0.0", "255.255.0.0")) {
    // Achi
    proxy = findProxyAchi(url,host);
  } else if (isInNet(myipaddr, "10.11.0.0", "255.255.0.0")) {
    // Kochi
    proxy = findProxyKochi(url,host);
  } else {
    proxy = 'DIRECT';
  }

  return proxy;
}

function findProxyHome(url,host) {
  var proxyLocal   = "proxy localhost:8888"
  var proxyExample = "proxy proxy.example.jp:8888"

  if (host.indexOf("irori.org") >= 0) {
    return proxyLocal;
  } else if (host.indexOf("example.jp") >= 0) {
    return proxyExample;
  }
  return "DIRECT";
}

function findProxyAchi(url,host) {
  //...
}

function findProxyKochi(url,host) {
  //...
}

thx >rigarashi

あと、proxy.pacの中で出したalert()は、FirebugのConsoleには出なくて、標準のError Consoleの方に出るので注意。