日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

day26 IP查询项目

發(fā)布時(shí)間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day26 IP查询项目 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
IP歸屬地在線查詢平臺(tái)

一、項(xiàng)目介紹
1.背景
根據(jù)IP得到位置,加標(biāo)簽
進(jìn)行大數(shù)據(jù)分析,比如淘寶推薦等提供優(yōu)質(zhì)數(shù)據(jù)
www.ip.cn 等 查詢IP

2.需求
IP 分析 歸屬地信息 , 查找在毫秒內(nèi)完成
IP地址庫(kù),公網(wǎng)都是開放的

IANA : 國(guó)際組織,負(fù)責(zé)公網(wǎng)IP維護(hù)分發(fā)

3.技術(shù)棧
Eclipse ,JavaSE中面向?qū)ο蟆O流、二分法算法、Base64編碼、工具類封裝
4.目標(biāo)
通過開發(fā)IP地址歸屬地查詢平臺(tái),我們需要對(duì)JavaSE綜合技術(shù)有所提升,增強(qiáng)實(shí)戰(zhàn)能力。學(xué)習(xí)完該項(xiàng)目我們應(yīng)該具備如下能力:
1 面向?qū)ο蟪绦蛟O(shè)計(jì)
2 工具類封裝與使用寫法
3 文件IO流
4 字符串處理
5 二分法查找
6 IP地址的不同形式的使用
二、主要思路
1 程序中讀取內(nèi)容
2 解析IP字符串,進(jìn)行結(jié)構(gòu)化處理
3 封裝工具類
4 接口API
入?yún)?: IP
出參 : 歸屬地
三、主要思路

應(yīng)用開發(fā)類項(xiàng)目
C/S結(jié)構(gòu),需要有特定的客戶端,比如QQ,微信,eclipse
Web開發(fā)類項(xiàng)目
B/S結(jié)構(gòu)為主.通過網(wǎng)頁(yè)形式訪問的在線系統(tǒng),比如各類官網(wǎng),各類管理系統(tǒng)等

中小型項(xiàng)目研發(fā)標(biāo)準(zhǔn)流程

1 需求概述-需求描述:說清楚你為什么做這個(gè)項(xiàng)目
根據(jù)IP獲取歸屬地
2 需求分析 :
根據(jù)需求概述,用技術(shù)角度考慮一下,是否可行
三方面 : 1 輸入 , 2 輸出 , 3 必備物料(地址庫(kù))
輸入 : 給定一個(gè)任意的合法IP地址
輸出 : 返回IP地址對(duì)應(yīng)的地址庫(kù)
3 開發(fā)步驟
1 讀取IP地址庫(kù)
2 解析地址庫(kù)的信息,進(jìn)行結(jié)構(gòu)化處理
3 將對(duì)象保存到list中
4 進(jìn)行二分法查找,提高效率
5 對(duì)外提供訪問的接口
6 測(cè)試
4 細(xì)節(jié)開發(fā)與風(fēng)險(xiǎn)控制
5 BUG修復(fù),調(diào)優(yōu),標(biāo)準(zhǔn)化
6 正式上線
7 項(xiàng)目總結(jié)-項(xiàng)目復(fù)盤
四、代碼開發(fā)
1 無腦讀取文件

public class TestFileIO_01 {public static void main(String args[]){try{//1 文件路徑String ipLibrayPath="ip_location_relation.txt";String encoding="UTF-8";//2 節(jié)點(diǎn)流對(duì)接文件FileInputStream fis=new FileInputStream(ipLibrayPath);//3 轉(zhuǎn)換為字符流并指定字符編碼Reader reader=new InputStreamReader(fis,encoding);//4 緩沖流提高效率BufferedReader br=new BufferedReader(reader);//5讀取String line=null;while((line=br.readLine())!=null){System.out.println(line);}//6關(guān)閉br.close();}catch(Exception e){e.printStackTrace();}} }

2… 文本文件讀取工具類
抽象工具類
1 通過編碼,實(shí)現(xiàn)輸入與輸出
2 抽象輸入與輸出,形成方法入?yún)⒑统鰠?br /> 3 工具類代碼實(shí)現(xiàn)并測(cè)試
2.1 工具類編碼

public class FileOperatorUtil {public static List<String> getLineList(String filePath, String encoding) {// TODO Auto-generated method stubreturn null;}}

2.2 工具類測(cè)試

public class TestFileIO_02 {public static void main(String args[]){//1.文件路徑String ipLibrayPath="ip_location_relation.txt";String encoding="UTF-8";try{List<String> lineList=FileOperatorUtile.getLineList(ipLibrayPath,encoding);for(String string:lineList){System.out.println(string);}}catch(IOException e){e.printStackTrace();}} }
  • 結(jié)構(gòu)化
    結(jié)構(gòu)化 : 當(dāng)我們知道第一個(gè)數(shù)據(jù)的格式的時(shí)候,那么第二個(gè)的數(shù)據(jù)格式就已經(jīng)確定了,有規(guī)律可循,方便操作
    根據(jù)非結(jié)構(gòu)化數(shù)據(jù),找到對(duì)應(yīng)的規(guī)則,并創(chuàng)建對(duì)應(yīng)的實(shí)體類進(jìn)行封裝,轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)
  • 抽象實(shí)體類并保存數(shù)據(jù)
    4.1 實(shí)體類
  • 總結(jié)

    以上是生活随笔為你收集整理的day26 IP查询项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。