局域網內攔截外來的IP地址
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt">將IP地址轉換成<SPAN lang=EN-US>Long</SPAN>類型的算法<SPAN lang=EN-US>(</SPAN>一個<SPAN lang=EN-US>IP</SPAN>,是一個32位無符號的二進制數。故用<SPAN lang=EN-US>long</SPAN>的低<SPAN lang=EN-US>32</SPAN>表示無符號<SPAN lang=EN-US>32</SPAN>位二進制數<SPAN lang=EN-US>)</SPAN>:<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />o:p/o:p</SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 23.6pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-char-indent-count: 1.96" align=left>public<SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>long<SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> getIP(InetAddress ip) { </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">o:p/o:p</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>byte<SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">[] b = ip.getAddress();</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">o:p/o:p</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>long<SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> l = b[0] << 24L & 0xff000000L | b[1] << 16L & 0xff0000L </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">o:p/o:p</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> | b[2] << 8L & 0xff00 | b[3] << 0L & 0xff; o:p/o:p</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>return<SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> l; </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">o:p/o:p</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">}o:p/o:p</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri> long l1 = getIP(InetAddress.getByName(ip1)); </FONT></SPAN></P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋體; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> </SPAN>通過這樣,比較IP地址是否在相應的范圍內。</SPAN>