作ってみました。でも、例えばCクラスで、24以下になっていいんですかね?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFI_JIS">
<script type="text/javascript">
<!--
function calc(f){
var addr=(f.INP.value).split("-");
var ad1=ip2int(addr[0]);
var ad2=ip2int(addr[1]);
f.RESULT.value=addr[0]+"/"+countSameBit(ad1,ad2);
}
function ip2int(ip){ //ip は、"192.168.10.123" のようなアドレスを表す文字列
var addr=ip.split(".");
var ret=0;
for(var i=0;i<4;i++)
ret=ret*256+parseInt(addr[i]);
return ret;
}
function countSameBit(v1,v2){//先頭からの一致するビットを数える
var c=0;
for(var i=2147483648;i>0;i>>>=1)//2147483648=2^31:32bitの範囲で
if((v1 & i)==(v2 & i))
c++;
else
break;
return c;
}
//-->
</script>
<title>ネットマスクの計算</title>
</head>
<body>
<form>
<input type="text" name="INP" value="202.23.128.0-202.23.191.0" size="40"><br>
<input type="text" name="RESULT" value="" size="20">
<button onclick="calc(this.form)">計算</button>
</form>
</body>
</html>
お礼
早速のレスありがとうございます。 修正したところ、Safariでも問題なく表示されました。 何故、こんな質問をしたかと申しますと、有名?な 高機能アクセス解析ってのがありまして、それには、 IPアドレスをDOMにする場所があるのですが、 それが、プレフィックス表記だけなので、Whoisで調査した もののなかには、xxx.xxx.xxx.xxx-xxx.xxx.yyy.zzzという 書き方で表示されるものもあり、どうしたらプレフィックス表記に なるのか、ちょっと知りたかった部分もあり、このように できるのであれば、アクセス解析CGIのIP取得部分をちょっと 改造すれば、OKになるんじゃないかと考えた訳です。 ってことは、結果的にできるんでしょうね。(^ o ^;) どうも、ご丁寧にありがとうございました。 PS. Mac IE5は、もう見捨てられたブラウザですから、 気にしないで下さい。