浠嬬粛閫氳繃IP鍦板潃鏌ユ壘ip鍏蜂綋鐨勫煄甯?jìng)鍜寴q愯惀鍟嗭紒閫氳繃QQIP鍦板潃搴擄細(xì)QQWry.Dat緙栧啓
浠ヤ笅鍙創(chuàng)鍑哄皯閲忎唬鐮?/span>錛岃鍚勪綅鐩存帴鍒版湰浜虹殑緗戠洏?shù)笅铦插畬鏁寸増锛堜唬鐮?鏈鏂癚QWry.Dat錛夛紝欏圭洰鍙洿鎺ヨ繍琛岋紒
QQWry.Dat澶у皬涓?.79M錛?/span>欏圭洰澶у皬浠?90k錛岀洿鎺ヨ繍琛孖PTest.java綾誨嵆鍙紒
姝や唬鐮佸彲鐢ㄤ簬鍚勭java欏圭洰鍜宩sp銆乯2ee欏圭洰
娉ㄦ剰錛?/span>QQWry.Dat鍙渶鏂囦歡鏀懼湪瀵瑰簲鐨勭洰褰曚笅鍗沖彲銆?/span>
- public class IPSeeker {
- //綰湡IP鏁版嵁搴撳悕
- private String IP_FILE="QQWry.Dat";
- //淇濆瓨鐨勬枃浠跺す
- private String INSTALL_DIR="f:/qqwry";
-
-
- // 涓浜涘浐瀹氬父閲忥紝姣斿璁板綍闀垮害絳夌瓑
- private static final int IP_RECORD_LENGTH = 7;
- private static final byte REDIRECT_MODE_1 = 0x01;
- private static final byte REDIRECT_MODE_2 = 0x02;
-
- // 鐢ㄦ潵鍋氫負(fù)cache錛屾煡璇竴涓猧p鏃墮鍏堟煡鐪媍ache錛屼互鍑忓皯涓嶅繀瑕佺殑閲嶅鏌ユ壘
- private Map<String, IPLocation> ipCache;
- // 闅忔満鏂囦歡璁塊棶綾?/span>
- private RandomAccessFile ipFile;
- // 鍐呭瓨鏄犲皠鏂囦歡
- private MappedByteBuffer mbb;
- // 璧峰鍦板尯鐨勫紑濮嬪拰緇撴潫鐨勭粷瀵瑰亸縐?/span>
- private long ipBegin, ipEnd;
- // 涓烘彁楂樻晥鐜囪岄噰鐢ㄧ殑涓存椂鍙橀噺
- private IPLocation loc;
- private byte[] buf;
- private byte[] b4;
- private byte[] b3;
-
- public IPSeeker(String fileName,String dir) {
- this.INSTALL_DIR=dir;
- this.IP_FILE=fileName;
- ipCache = new HashMap<String, IPLocation>();
- loc = new IPLocation();
- buf = new byte[100];
- b4 = new byte[4];
- b3 = new byte[3];
- try {
- ipFile = new RandomAccessFile(IP_FILE, "r");
- } catch (FileNotFoundException e) {
- ...........
- .............
- ................

]]>