java获取本地Foreign Address.docx
文本预览下载声明
注:通过修改注释代码可用于扫描本地网卡(单网卡)已打开的端口public class GetNewIP {private static ListString getForeignAddress(){String line = ;Process pro = null;BufferedReader buf = null;ListString temp = new ArrayListString();try {pro = Runtime.getRuntime().exec(netstat -ano);buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));int i = 0;while ((line = buf.readLine()) != null) {if (line.length() 0 i 3) {String[] strArray = line.split(\\s+);if (strArray.length = 3) {String s = strArray[3];//System.out.println(------+s);//String[] sArray = s.split(:);//if (sArray[1].length() 0) {//temp.add(sArray[1]);//}if (!(s.equals(0.0.0.0:0)||s.equals(*:*)||s.equals([::]:0))) {temp.add(s);}}}i++;}} catch (Exception e) {e.printStackTrace();} finally {try {buf.close();} catch (IOException e) {e.printStackTrace();}pro.destroy();}return temp;}private static void printNewIPandPort(ListStringlist1,ListStringlist2){System.out.println(Current Time :+new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date()));for (String str2 : list2) {boolean flag = false;for (String str1 : list1) {if (str2.equals(str1)) {flag = true;break;}}if (!flag) {System.out.println(A New Foreign Address Of + str2);}}}private static void printForeignAddress(ListStringlist){if (list.size()0) {System.out.println(The following size + list.size());for (String str : list) {System.out.println(str);}System.out.println(--------------------------------------);}}/** * @param args * @throws InterruptedException */public static void main(String[] args) throws InterruptedException {// TODO Auto-generated method stubListString list1 = new ArrayListString();ListString list2 = new ArrayListString();list1 = getForeignAddress();printForeignAddress(list1);while(true){Thread.sleep(15000);list2 = getForeignAddress();printForeignAddress(list2);printNewIPandPort(list1, list2);list1 = null;list1 = list2;} }}
显示全部