通过java和snmp获取本机的网关地址
毕业设计遇到一个问题,如果才能获得本机的网关地址,问了百度和google,似乎找不到答案,于是在论坛里发帖问老鸟们,在他们的提示下,实现了获取网关的地址,这里主要是通过snmp协议读取本机的mib库,因为OID为1.3.6.1.2.1.4.21.1.7对应的是ipRouteNextHop,也就是下一跳路由,对本机来说就说默认网关了,这里用到了snmp4j这个包,用于实现snmp协议的相关操作,之前的博文也有介绍snmp4j的简单使用,下面就上代码了:
//使用到的类
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
//下面只是一个方法
public String getIpOfGateway(){
String gatewayIpString=null; //网关ip地址是这个字符串的子串
String gatewayIp=null; // 这是代表网关ip
try {
/**
* Set properties of target
*/
CommunityTarget localhost = new CommunityTarget();
Address address = GenericAddress.parse("udp:127.0.0.1/161");
localhost.setAddress(address);
localhost.setCommunity(new OctetString("public"));
localhost.setRetries(2);
localhost.setTimeout(5*60);
localhost.setVersion(SnmpConstants.version2c);
/**
* Set protocols of UDP and SNMP
*/
TransportMapping transport = new DefaultUdpTransportMapping();
transport.listen();
Snmp protocol = new Snmp(transport);
/**
* OID binding
*/
PDU requestPDU = new PDU();
requestPDU.ad
相关文档:
线程组
在Java中每一个线程都归属于某个线程组管理的一员,例如在主函数main()主工作流程中产生一个线程,则产生的线程属于main这个线程组管理的一员。简单地说,线程组就是由线程组成的管理线程的类,这个类是java.lang.ThreadGroup类。
可以通过使用如下代码获取此线程所属线程组的名称。
Thread.currentThread().ge ......
解决方法一:(最重要的一种方法)
你看下my.ini,有无
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
然后建立表时,也要用(比如)
DROP TABLE IF EXISTS `Company`;
CREATE &nb ......
import java.io.FileInputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import javax.crypto.Cipher;
// 公钥加密,私钥解密示例程序
public class A {
& ......
java:4类8种基础数据类型:
整型:byte short int long
浮点型: float double
布尔型:boolean
字符型:char
除了4类8种基础数据类型,其他的数据类型都是引用类型例如定义的class 等等,这一点异常重要。否则会导致在使用container时出错,每添加一个对象进入container都必须是一个对象而不 ......
1、 认识Thread和Runnable
Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来,调用start()方法即可以启动一个线程。
Thread Test = ......