开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
3 Star 2 Fork 1

YIN随缘/NetMonitor

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
NetMonitor
/
java
/
MainTest.java
NetMonitor
/
java
/
MainTest.java
MainTest.java 4.82 KB
一键复制 编辑 原始数据 按行查看 历史
YIN随缘 提交于 2015年11月24日 21:27 +08:00 . add source code
import java.io.IOException;
import netmonitor.*;
public class MainTest {
public static void main(String[] args) throws IOException, InterruptedException {
MainTest TestCase = new MainTest();
JNetMonitor netMonitor = new JNetMonitor();
//必须首先调用openDatabase
netMonitor.openDatabase(null);
// 测试用例
TestCase.test_execute_sql(netMonitor);
// TestCase.test_snmp(netMonitor);
TestCase.test_rule(netMonitor);
// TestCase.test_task(netMonitor);
// TestCase.test_telnet_config(netMonitor);
String[] devices = netMonitor.lookupDevices();
for (int i=0; i<devices.length; i++) {
System.out.printf("%d, %s\n", i+1, devices[i]);
}
System.out.print("请选择网卡号:");
char input = (char) System.in.read();
int select = Integer.parseInt(String.valueOf(input));
if ( select<1 || select>devices.length )
{
System.out.println("网卡号选择错误");
System.exit(0);
}
//设置事件回调对象
LoggerEvent eventObject = new LoggerEvent();
netMonitor.setEventCallback(eventObject);
netMonitor.startMonitor(devices[select-1], 10240, true, 100, null);
//准备开始取得IP=>MAC映射表, 必须在startMontior后调用
// netMonitor.setMapEnabled(true);
while ( true )
{
// 控制台输入q 回车,退出
input = (char) System.in.read();
if ( input=='q' )
{
netMonitor.stopMonitor();
netMonitor.closeDatabase();
break;
}
//Console下输入m, 测试取得IP=>MAC映射表
/* else if ( input=='m' )
{
String[] ipTable = netMonitor.getIpsMapTable();
for ( int i=0; i<ipTable.length; i++ )
{
String macString = netMonitor.getMacByIp(ipTable[i]);
System.out.println(macString);
}
}*/
//Console下输入c, 清除IP=>MAC映射表, 并停止映射
else if ( input=='c' )
{
netMonitor.clearIpsMapTable();
netMonitor.setMapEnabled(false);
}
else if ( input=='k' )
{
TestCase.test_stats(netMonitor);
}
}
System.exit(0);
}
/*
* 测试用例
*/
//snmp测试
void test_snmp(JNetMonitor netMonitor)
{
SnmpObjectMeta metaObj = new SnmpObjectMeta();
netMonitor.openSnmpServer();
String metaData = "yy";
netMonitor.sendSnmpObjectMeta(".1.3.6.1.2.1.1.6.0", 0x04, metaData.getBytes());
metaObj.oids = ".1.3.6.1.2.1.1.6.0";
netMonitor.getSnmpObjectMeta(metaObj);
String value = new String(metaObj.value);
System.out.println(value);
netMonitor.closeSnmpServer();
}
//telnet信息配置测试
void test_telnet_config(JNetMonitor netMonitor)
{
}
//ssh
void test_ssh_config(JNetMonitor netMonitor)
{
SSHConfig config = new SSHConfig();
config.username = "administrator";
config.password = "123456";
netMonitor.setSSHConfig(config.username, config.password, config.port, "");
config.username = "";
config.password = "";
config.port = 0;
netMonitor.getSSHConfig(config);
}
void test_execute_sql(JNetMonitor netMonitor)
{
netMonitor.executeSQL("delete from RuleTable");
netMonitor.executeSQL("delete from TaskTable");
netMonitor.executeSQL("delete from StatsTable");
// netMonitor.executeSQL("update ConfigTable set telnet_port=23");
}
// 规则配置测试
void test_rule(JNetMonitor netMonitor)
{
String xmlProps = "<ruleprops>\n" +
"<syntax>packet.data[12-13]='0800' and packet.data[23]=1 end</syntax>\n" +
"<desc>Filter QQ Application</desc>\n" +
"<enabled>true</enabled>\n" +
"<timeout>100</timeout>\n" +
"<command>\n" +
" <lock>access-list 102 deny tcp any any range 6881 6890</lock>\n" +
" <unlock>access-list 102 permit ip</unlock>\n" +
"</command>\n" +
"</ruleprops>";
netMonitor.insertRule(xmlProps);
}
// 任务配置测试
void test_task(JNetMonitor netMonitor)
{
for (int i=1; i<51; i=i+5)
{
String xmlProps = String.format(
"<taskprops>\n" +
"<specified>%d</specified>\n" +
"<interval>5</interval>\n" +
"<frequency>5</frequency>\n" +
"<command>access-list 102 permit ip</command>\n" +
"<desc>Trigger per 1000ms</desc>\n" +
"</taskprops>", i);
netMonitor.insertTask(xmlProps);
}
String []taskList = netMonitor.getTaskList("select * from TaskTable");
for (int i=0; i<taskList.length; i++)
{
String xmlProps = netMonitor.getTaskProps(taskList[i]);
System.out.println(xmlProps);
}
}
// 统计测试
void test_stats(JNetMonitor netMonitor)
{
String syntax = "ip.des=10.193.155.185 and packet.data[12-13]='0800' and packet.data[23]=1 end";
String md5String = netMonitor.insertStats(syntax);
try{Thread.sleep(10000);}catch(Exception e){}
long localBytes = netMonitor.getLocalIOBytes(md5String);
System.out.printf("==================== [%d]\n", localBytes);
netMonitor.removeStats(md5String);
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

2006年底开工,大约毕业4年时和一个朋友所写。NMMediator是C/C++封装的标准库,JNetMonitor.java是给java用的JNI封装,flex yaac解析自定义规则。NMMediator.h采用doxygen 规范注释,便于生成文档。当时未考虑跨平台,如今已远离windows,仅留作纪念。
暂无标签
GPL-2.0
使用 GPL-2.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/zencodex/NetMonitor.git
git@gitee.com:zencodex/NetMonitor.git
zencodex
NetMonitor
NetMonitor
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /