- 浏览: 169046 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
hugang357:
...
java String to byte[] -
lyzhu:
winstr
使用JAVASCRIPT实现弹出框,过一段时间自动消失 -
laoliu.org:
要是稍微整理一下成一个健全类就更好了,呵呵。
我把它转到IT民 ...
java月份时间(第一天,最后一天) -
kaituozhe6666:
...
使用JAVASCRIPT实现弹出框,过一段时间自动消失 -
damocreazy:
试一试
如何让EditPlus可以编译执行Java程序
引自:
http://www.nqqn.com/ym/68/2972.htm
因为最近有程序需要在java环境下获取网卡ID,研究了SUN网站的相关资料(感谢令公子的连接)。
测试整理了一下,分享给大家。
思路是通过调用windows环境下的ipconfig命令和Linux环境下的ifconfig命令来获取网卡信息:
分为四个程序文件:
test.java;NetworkInfo.java;WindowsNetworkInfo.java;LinuxNetworkInfo.java
//--------------test.java--------
package netcardinfo;
public class test {
public test() {
}
public NetworkInfo nti = new WindowsNetworkInfo();
public static void main(String[] args) {
test test1 = new test();
try {
System.out.println("Network infos");
System.out.println("Operating System:" + System.getProperty("os.name"));
System.out.println("IP/Localhost:" + test1.nti.getLocalHost());
System.out.println("MAC Address:" + test1.nti.getMacAddress());
System.out.println("Domain:" + test1.nti.getNetworkDomain());
}
catch(Throwable t) {
t.printStackTrace();
}
}
}
//---------end file---------
//-----------NetworkInfo.java----------
package netcardinfo;
import java.net.*;
import java.io.*;
import java.text.*;
import java.util.*;
import java.util.regex.*;
public abstract class NetworkInfo{
private static final String LOCALHOST = "localhost";
public static final String NSLOOKUP_CMD = "nslookup";
public abstract String parseMacAddress() throws ParseException;
/** Not too sure of the ramifications here, but it just doesn't seem right */
public String parseDomain() throws ParseException { return parseDomain(LOCALHOST); }
/** Universal entry for retrieving MAC Address */
public final static String getMacAddress() throws IOException {
try {
NetworkInfo info = getNetworkInfo();
String mac = info.parseMacAddress();
return mac;
}
catch(ParseException ex)
{ ex.printStackTrace();
throw new IOException(ex.getMessage());
}
}
/** Universal entry for retrieving domain info */
public final static String getNetworkDomain() throws IOException{
try {
NetworkInfo info = getNetworkInfo();
String domain = info.parseDomain();
return domain;
}
catch(ParseException ex)
{ex.printStackTrace();
throw new IOException(ex.getMessage());
}
}
protected String parseDomain(String hostname) throws ParseException{
// get the address of the host we are looking for - verification
java.net.InetAddress addy = null;
try {
addy = java.net.InetAddress.getByName(hostname);
}
catch ( UnknownHostException e ) {
e.printStackTrace();
throw new ParseException(e.getMessage(),0);
}
// back out to the hostname - just validating
hostname = addy.getCanonicalHostName();
String nslookupCommand = NSLOOKUP_CMD + " " + hostname;
// run the lookup command
String nslookupResponse = null;
try {
nslookupResponse = runConsoleCommand(nslookupCommand);
}
catch ( IOException e ){
e.printStackTrace();
throw new ParseException(e.getMessage(), 0);
}
StringTokenizer tokeit = new StringTokenizer(nslookupResponse,"\n",false);
while( tokeit.hasMoreTokens() )
{ String line = tokeit.nextToken();
if( line.startsWith("Name:")){line = line.substring(line.indexOf(":") + 1);
line = line.trim();
if( isDomain(line, hostname)){line = line.substring(hostname.length()+1);
return line;
}
}
}
return "n.a.";
}
private static boolean isDomain(String domainCandidate, String hostname)
{ Pattern domainPattern = Pattern.compile("[\\w-]+\\.[\\w-]+\\.[\\w-]+\\.[\\w-]+");
Matcher m = domainPattern.matcher(domainCandidate);
return m.matches() && domainCandidate.startsWith(hostname);
}
protected String runConsoleCommand(String command) throws IOException {
Process p = Runtime.getRuntime().exec(command);
InputStream stdoutStream = new BufferedInputStream(p.getInputStream());
StringBuffer buffer= new StringBuffer();
for (;;) {
int c = stdoutStream.read();
if (c == -1) break;
buffer.append((char)c);
}
String outputText = buffer.toString();
stdoutStream.close();
return outputText;
}
/** Sort of like a factory... */
private static NetworkInfo getNetworkInfo() throws IOException {
String os = System.getProperty("os.name");
if(os.startsWith("Windows")) {
return new WindowsNetworkInfo();
}
else if(os.startsWith("Linux")) {
return new LinuxNetworkInfo();
}
else {
throw new IOException("unknown operating system: " + os);
}
}
protected String getLocalHost() throws ParseExce
发表评论
-
java调用google map api 根据经纬度读取经纬度地址
2012-02-28 08:42 2776package B7.general; import ... -
java 读取http url joson 格式
2012-02-28 08:39 1131URL url = new URL("htt ... -
【转】用Lucene的SpellChecker实现Google的“您是不是要找”功能
2011-03-25 11:01 1421引言 很多人在使用搜索引擎的时候,会出于各种原因,拼错想要搜 ... -
Java 接口和抽象类区别
2011-03-02 08:58 569一个软件设计的好坏, ... -
php 环境搭建
2009-06-17 17:25 1085想学习php。在网上找了个搭建。好多杂的。google一下时间 ... -
abstract class vc interface
2008-12-10 16:24 1411abstract class 和 interface 都提供可 ... -
二分查找vc线性查找
2008-12-10 14:32 1018public static int binarySearch( ... -
java 取字符串中汉字之前的部门
2008-09-03 17:28 1035String dd="ddfdf你好" ... -
java 数组 操作
2008-08-21 17:30 1032public ArrayList zuhe(){ ... -
查询代码网站
2008-08-17 15:55 740<search terms> Search fo ... -
java String to byte[]
2008-07-16 09:01 4422package mobile; /* * T ... -
java pdf
2008-07-13 13:39 1104引用 :http://www.iteye.com/post/5 ... -
java月份时间(第一天,最后一天)
2008-06-13 20:57 7018<% //当前月的最后一天 ... -
java中文件操作大全
2008-05-08 18:07 950引用: http://www.pben.cn/main.bb ... -
较好的Java网站收集
2008-04-25 14:19 935转自:http://blog.chinaunix. ... -
java 自定义排序
2008-04-21 10:21 2001利用java.util. Comparator接口 和java ... -
2008年Java开发者最迫切的五个期望
2008-03-29 11:28 1189发布日期:2008-1-11 9:11 ... -
Java精华积累:每个初学者都应该搞懂的问题!
2008-03-07 13:20 1019Java精华积累:每个初学 ... -
如何让EditPlus可以编译执行Java程序
2008-02-13 10:51 1709如何让EditPlus可以编译执行Java程序在 USER T ... -
阴阳转换的类! 算法支持1900-2050
2008-02-13 10:49 1266引自: http://www.nqqn.com/ym/68/2 ...
相关推荐
sun公司培训java的资料,很不错哦
SUN公司 JAVA 275重要学习资料,JAVA学习必备资源,非常好的JAVA学习资料哦,多少年才舍年拿出来分享
SUN公司JAVA认证考试题目!
本书的主要目标是为你提供有关Java应用和Java applets的面向对象的程序设计所必需的知识和技能;...本课程包括了参加SUN Certified Java Programmer 和SUN Certified Java Developer 考试所必备的知识。
SUN Java培训教程
SUN_JAVA 培训教程-翻译稿SUN_JAVA 培训教程-翻译稿
本书的主要目标是为你提供有关Java应用和Java applets的面向对象的程序设计所必需的知识和技能;...本课程包括了参加SUN Certified Java Programmer 和SUN Certified Java Developer 考试所必备的知识。
在Sun Solaris上Java默认是不生成OOM的JavaCore及Dump文件,本资源详细介绍了,如何在生产环境的运行时获取内存信息进行分析,定位问题。
scjp 资料 一些题 Sun Java Certified Programmer.pdf
sun公司java培训资料
美妙的音乐产生于一段程序,Sun公司java经典音乐程序
310-025 - JAVA Cram Bible Sun Certified Programmer for the Java 2 Platform
无论你是个新手,还是程序设计方面的专家,你都会惊异于Sun公司Java的无穷魅力。Java带给你的并不仅仅是面向对象、开放、平台无关、易用、安全和“Write once, run anywhere”等软件开发方面的优势,更重要的一点是,...
SUN公司JAVA认证考试题。。。。.。。。。。。。。。。。。。。。
SUN JAVA程序员模拟题 SUN JAVA程序员模拟题
sun-java6-jdk的安装包。还有一些openoffice3.0在ubuntu上的安装文档说明。
Ubuntu下安装sun-java6-jdk和eclipse
java8源码包含sunjava8源码包含sunjava8源码包含sunjava8源码包含sunjava8源码包含sun
Sun Java培训教程中文版.pdf