隨筆-179  評論-666  文章-29  trackbacks-0
          通過調用dos命令實現獲取


          ?1import?java.io.*;
          ?2
          ?3public?class?Test?{
          ?4????public?static?void?main(String[]?args)?{
          ?5????????try?{
          ?6????????????Process?process?=?Runtime.getRuntime().exec("ipconfig?/all");
          ?7????????????InputStreamReader?ir?=?new?InputStreamReader(process
          ?8????????????????????.getInputStream());
          ?9????????????LineNumberReader?input?=?new?LineNumberReader(ir);
          10????????????String?line;
          11????????????while?((line?=?input.readLine())?!=?null)
          12????????????????if?(line.indexOf("Physical?Address")?>?0)?{
          13????????????????????String?MACAddr?=?line.substring(line.indexOf("-")?-?2);
          14????????????????????System.out.println("MAC?address?=?["?+?MACAddr?+?"]");
          15????????????????}

          16????????}
          ?catch?(java.io.IOException?e)?{
          17????????????System.err.println("IOException?"?+?e.getMessage());
          18????????}

          19????}

          20}
          ?
          21

          ------------------------------------

          順便轉一篇關于MAC的文章:

          ????? 近來在網上經常見有人問起Mac地址的問題,那么究竟Mac地址是什么?在現行的網絡中,扮演什么角色呢?下面我們就一同來探討一下關于Mac地址的知識。
          ?????? 什么是Mac地址?

            Mac地址就是在媒體接入層上使用的地址,通俗點說就是網卡的物理地址,現在的Mac地址一般都采用6字節48bit(在早期還有2字節16bit的Mac地址)

            前24位由是生產廠家向IEEE申請的廠商地址(這可是要花錢的哦!據說1000美元才能買一個地址塊)。后24位就由生產廠家自行定以了。(早期的2字節的卻不用申請)

            IP地址和Mac地址有什么聯系和區別

            大家都知道,現在有很多計算機都是通過先組建局域網,然后通過交換機和Internet連接的(大學里的校園網就是這樣)。然后給每個用戶分配固定的IP地址,由管理中心統一管理,這樣為了管理方便就需要使用Mac地址來標志用戶,防止發生混亂,明確責任(比如網絡犯罪)。另外IP地址和Mac地址是有區別的,雖然他們在局域網中是一一對應的關系。IP地址是跟據現在的IPv4標準指定的,不受硬件限制比較容易記憶的地址,而Mac地址卻是用網卡的物理地址,多少與硬件有關系,比較難于記憶。

            如何知道自己的Mac地址

            方法比較多,也比較得簡單,在這里介紹兩種常用的方法,在Win9x 可用:WinIPcfg獲得,在2000、XP可用IPconfig -all獲得。如果你已經給自己的網卡分配了IP還可以用 nbtstat -A 自己的IP 如下圖,后者只能在2000/XP下使用。

          如何獲得別人的Mac

            其實上面已經涉及到了,如果是2000/XP用戶可以用 nbtstat -A IP地址(還可以獲得別的東東啊,可別學壞啊)。另外同一局域網內的,你可以用ping IP 或者ping 主機名,然后用arp -a 來獲得。

            如何修改自己的Mac地址

            Mac地址是保存在網卡的EPROM里面,通過網卡生產廠家提供的修改程序可以更改存儲器里的地址,即使網卡沒有這樣的設置我們也可以通過間接的方法修改,一般網卡發出的包的源Mac地址并不是網卡本身寫上去的,而是應用程序提供的,只是在通常的實現中,應用程序先從網卡上得到Mac地址,每次發送的時候都用這個Mac做為源Mac而已,Windows中,網卡的Mac保存在注冊表中,實際使用也是從注冊表中提取的,所以只要修改注冊表就可以簡單的改變Mac

            Win9x中修改:

            打開注冊表編輯器,在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000,0001,0002 Win2000/XP中的修改:同樣打開注冊表編輯器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串變量,命名為"NetworkAddress",值為要設置的Mac地址,例如:000102030405
          完成上述操作后重啟就好了。

            Linux下的修改:

            1.必須關閉網卡設備,否則會報告系統忙,無法更改。

            命令是:"ifconfig eth0 down"

            2.修改Mac地址,這一步較Windows中的修改要簡單。

            命令是:"ifconfig eth0 hw ether 00AABBCCDDEE"

            3.重新啟用網卡

            "ifconfig eth0 up"網卡的Mac地址更改就完成了。

            現在還有很多軟件提供了修改Mac地址的功能,如:Mac2001

            那么既然IP和Mac地址都可以改,那么怎么防御呢?通過簡單的交換機端口綁定(端口的Mac表使用靜態表項),可以在每個交換機端口只連接一臺主機的情況下防止修改Mac地址的盜用,如果是三層設備還可以提供:交換機端口-IP-Mac 三者的綁定,防止修改Mac的IP盜用,這種方法更有效!還有些方法如配置交換機的VLAN,使用用戶認證等,都略顯復雜,再次不多浪費筆墨。



          posted on 2006-04-18 09:52 Alpha 閱讀(5251) 評論(3)  編輯  收藏 所屬分類: Java J2EE JSP

          評論:
          # re: java中獲取MAC地址&了解Mac地址 2006-04-22 14:39 | QQ
          好東西啊,MARK  回復  更多評論
            
          # re: java中獲取MAC地址&了解Mac地址 2007-09-24 16:33 | 二楞子
          高手  回復  更多評論
            
          # aa[未登錄] 2011-06-07 16:42 | aa
          不能用呀  回復  更多評論
            
          主站蜘蛛池模板: 屯昌县| 婺源县| 龙海市| 隆安县| 灯塔市| 溧水县| 马公市| 龙川县| 连州市| 凤城市| 东乡族自治县| 五台县| 广东省| 崇文区| 仙桃市| 宣威市| 武功县| 同心县| 马公市| 运城市| 凌海市| 高碑店市| 天等县| 新源县| 伽师县| 中宁县| 衡东县| 汶川县| 佛山市| 桂东县| 南和县| 鸡东县| 沂源县| 鸡泽县| 靖边县| 五指山市| 无锡市| 嘉峪关市| 桂平市| 大方县| 丰城市|