电脑macip信息收集工具

2020春节 在家没事做 就想把之前的ip地址收集工具优化一下

简述一下之前的工具 使用au3编写 功能是通过ipconfig把相关信息写到同目录txt文档 文件名就是办公室人员信息

程序放在共享运行 数据也在共享 如果数据写入数据库 那么 程序可以放在web上下载 数据对用户不可见 增强安全性 可靠性

目标 :

1.数据直接写入数据库 免除后期数据整理的时间

2.获取ip信息 mac信息 包括真实mac和虚拟mac

3.如果可以 增加根据mac修改ip


mysql数据库读写 (au3)

#include "EzMySql.au3";EzMySql.au3源自网络,可自行下载
#include <Array.au3>
#include <String.au3>

$server_input = "***.*******.cc" ;链接地址 ip或域名
$port_input = "369" ;mysql端口建议不要使用默认
$user_input = "user" ;账号
$Pass_input = "pass" ;密码
$database_input = "sun" ;数据库


#Region 连接数据库
If Not _EzMySql_Startup() Then ;;找到或创建libmysql.dll并创建一个MySQL结构
	MsgBox(0, "启动MySql时出错", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
	Exit
EndIf

If Not _EzMySql_Open($server_input, $user_input, $Pass_input, $database_input, $port_input) Then ;;打开一个MySql数据库
	MsgBox(0, "打开数据库时出错", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
	Exit
EndIf


If Not _EzMySql_SelectDB($database_input) Then ;使db指定的数据库成为默认数据库
	MsgBox(0, " 设置要使用的数据库时出错", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
	Exit
EndIf

_EzMySql_Exec("set names 'GBK'") ;设置数据库 编码 ;缺少这个返回数据时显示中文乱码
#EndRegion 连接数据库

$qidongkaiguan = 1 ;用来控制 代码测试,如果不想要把判断代码改为不成立即可

;~ 1 简单测试代码
;~ 3 测试插入重复主键 是否成功
;~ 4 随机插入 数据
;~ 5  插入 1条完整数据

Local $aneironglie1s[7] = ["Amb我ser", "Bl额ue", "Br人own", "Gr他ey", "Gr有een", "Haz到el", "R是ed"] ;原始数据 测试用
Local $aneirlie2s[6] = ["Bro想wn", "Bla新ck", "Blon车d", "Gr白ey", "G能reen", "P号ink"] ;;原始数据  测试用


If $qidongkaiguan = 6 Then ;#Region 建立数据表  注意;测试出 列名不能是中文多字,成功的中文列名只能是1个字,建议英文字母做列名
	$sMySqlStatement = "CREATE TABLE IF NOT EXISTS qcjd (id int PRIMARY KEY,idtime char(17),mac char(17),mactt char(12),ipdz   char(15),mask char(15),gateway char(15),Friendly VarChar(50),Adapter VarChar(50),Description VarChar(50),Type VarChar(50),dns1 char(15),dns2 char(15),names VarChar(50),pcname VarChar(30))CHARSET=utf8;" ;   这里设置UTF8 是为了能在      【NAVICAT FOR MYSQL】 软件中能看到 正常的中文内容                                                                                                               ;数值类型
	If Not _EzMySql_Exec($sMySqlStatement) Then ;执行一个MySql查询。
		MsgBox(0, "建立数据表", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
		Exit
	Else
		MsgBox(0, "建立数据表", '成功')
;~ 			Exit
	EndIf
EndIf ;控制代码


$MacAddressRegKey = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0007"
$mac=RegRead($MacAddressRegKey, "NetworkAddress")




$idtime=@YEAR&@YDAY&@HOUR&@MIN&@SEC&@MSEC
;$mac="01-02-03-04-05-06"
$mactt="010203040506"
$ipdz="192.168.100.202"
$mask="255.255.255.248"
$gateway="192.168.1.254"
$Friendly="本地连接"
$Adapter="{0c62z52636225225236516512523365236521525252}"
$Description="intel(r) enhereee coddsdxdon () dddd--dd"
$Type="Ethernet network interface"
$dns1="208.67.222.222"
$dns2="61.177.7.1"
$names="1906王主任"
$pcname=@ComputerName

;~  
;~ $idtime=""
;~ $mac=""
;~ $mactt=""
;~ $ipdz=""
;~ $mask=""
;~ $gateway=""
;~ $Friendly=""
;~ $Adapter=""
;~ $Description=""
;~ $Type=""
;~ $dns1=""
;~ $dns2=""
;~ $names=""
;~ $pcname=""
 

If $qidongkaiguan = 5 Then ;#Region 插入1条数据 测试重复插入结果
	$sMySqlStatement = "INSERT INTO qcjd ( `idtime`, `mac`, `mactt`, `ipdz`, `mask`, `gateway`, `Friendly`, `Adapter`, `Description`, `Type`, `dns1`, `dns2`, `names`, `pcname`) " & _
			" VALUES (unhex('" & _StringToHex($idtime) & "'),unhex('" & _StringToHex($mac) & "'),unhex('" & _StringToHex($mactt) & "'),unhex('" & _StringToHex($ipdz) & "'),unhex('" & _StringToHex($mask) & "'),unhex('" & _StringToHex($gateway) & "'),unhex('" & _StringToHex($Friendly) & "'),unhex('" & _StringToHex($Adapter) & "'),unhex('" & _StringToHex($Description) & "'),unhex('" & _StringToHex($Type) & "'),unhex('" & _StringToHex($dns1) & "'),unhex('" & _StringToHex($dns2) & "'),unhex('" & _StringToHex($names) & "'),unhex('" & _StringToHex($pcname) & "'));"
	If Not _EzMySql_Exec($sMySqlStatement) Then ;执行一个MySql查询。 可以多行。 无法处理结果
		MsgBox(0, "将数据插入表时出错", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
		Exit
	Else
		MsgBox(0, "将数据插入表", '成功')
	EndIf
EndIf ;控制代码

If $qidongkaiguan = 3 Then ;#Region 插入1条数据 测试重复插入结果
	$sMySqlStatement = "INSERT INTO qcjd (id,Name,jiage) VALUES (unhex('" & _StringToHex('3') & "'),unhex('" & _StringToHex('测试重复111') & "'),unhex('" & _StringToHex('92222229.56122') & "'));"
	If Not _EzMySql_Exec($sMySqlStatement) Then ;执行一个MySql查询。 可以多行。 无法处理结果
		MsgBox(0, "将数据插入表时出错", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
		Exit
	Else
		MsgBox(0, "将数据插入表", '成功')
	EndIf
EndIf ;控制代码


If $qidongkaiguan = 4 Then ;#Region 插入数据  注意:插入中文内容时,需要把数据转换成 16进制  ,再以 unhex('') 的方式传输到数据库,让数据库自动转换成正常数据
	Local $sMySqlStatement = ""
	For $i = 1 To 50
		$sMySqlStatement &= "INSERT INTO qcjd (id,Name,zhengshu,neironglie1,nronglie3,jiage,neirlie2) VALUES (" & _
				"'" & $i & "'," & _
				"'Person" & $i & "'," & _
				"'" & Random(1, 100, 1) & "'," & _
				"unhex('" & _StringToHex($aneironglie1s[Random(1, 7, 1)]) & "')," & _
				"unhex('" & _StringToHex($aneironglie1s[Random(1, 7, 1)]) & "')," & _
				"unhex('" & _StringToHex(Random(10, 99)) & "')," & _
				"unhex('" & _StringToHex($aneirlie2s[Random(0, 5, 1)]) & "'));"
	Next
	If Not _EzMySql_Exec($sMySqlStatement) Then ;执行一个MySql查询。 可以多行。 无法处理结果
		MsgBox(0, " 将数据插入表时出错", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
		Exit
	EndIf
	MsgBox(0, "插入数据后 返回插入数据数量", _EzMySql_InsertID()) ;返回由先前的INSERT或UPDATE语句为AUTO_INCREMENT列生成的值
EndIf ;控制代码

If $qidongkaiguan = 1 Then ;#Region 查询表中的所有数据 以二维数组的形式显示
	$aOk = _EzMySql_GetTable2d("SELECT * FROM qcjd;") ;传递一个二维数组,其中包含列名和已执行查询的数据
	$error = @error
	If Not IsArray($aOk) Then MsgBox(0, $sMySqlStatement & " error", $error)
	$fhjglie = _EzMySql_Columns() ;返回结果列
	$fhjghang = _EzMySql_Rows() ;返回结果行
	_ArrayDisplay($aOk, "查询表中的 所有数据 以二维数组的形式显示 (行):" & $fhjghang & "-" & $fhjglie & "(列) ")
EndIf ;控制代码

If $qidongkaiguan = 1 Then ;#Region 查询表中符合的特定数据 以二维数组的形式显示
	$linshi = "2020049231722095"
	$aOk = _EzMySql_GetTable2d("SELECT * FROM qcjd WHERE idtime = '" & $linshi & "';") ;传递一个二维数组,其中包含列名和已执行查询的数据
	$error = @error
	If Not IsArray($aOk) Then MsgBox(0, $sMySqlStatement & " error", $error)
	_ArrayDisplay($aOk, "查询表中符合 neironglie1 = " & $linshi & " 的特定数据 以二维数组的形式显示")
EndIf ;控制代码

If $qidongkaiguan = 1 Then ;#Region 查询表中符合特定条件的 5条 数据,然后以 一维数组 的形式,一条一条的展示
	$linshi = $aneirlie2s[Random(0, 5, 1)]
	If Not _EzMySql_Query("SELECT * FROM qcjd WHERE idtime = '" & $linshi & "' LIMIT 5;") Then ;查询单行MySql语句
		MsgBox(0, " 查询错误", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) ;返回由先前的INSERT或UPDATE语句为AUTO_INCREMENT列生成的值。
		Exit
	EndIf

	For $i = 1 To _EzMySql_Rows() Step 1 ;返回最后一个MySql查询的行数
		$a1Row = _EzMySql_FetchData() ;从上一个MySql查询中获取1行数据
		_ArrayDisplay($a1Row, "查询表中符合 " & $linshi & " 条件的 5条 数据,然后以 一维数组 的形式,一条一条的展示 结果: " & $i)
	Next
EndIf ;控制代码

If $qidongkaiguan = 1 Then ;#Region 查询表中符合特定条件  neirlie2 列中 包含 想 的数据 ,以二维数组的形式显示
	$aOk = _EzMySql_GetTable2d("SELECT * FROM qcjd WHERE idtime LIKE '%20%';") ;传递一个二维数组,其中包含列名和已执行查询的数据
	$error = @error
	If Not IsArray($aOk) Then MsgBox(0, " error1.4.1", $error)
	$fhjglie = _EzMySql_Columns() ;返回结果列
	$fhjghang = _EzMySql_Rows() ;返回结果行
	_ArrayDisplay($aOk, "neirlie2 列中 包含 想 的数据 以二维数组的形式显示 (行):" & $fhjghang & "-" & $fhjglie & "(列) ")

	$aOk = _EzMySql_GetTable2d("SELECT * FROM qcjd WHERE idtime>50;") ;传递一个二维数组,其中包含列名和已执行查询的数据
	$error = @error
	If Not IsArray($aOk) Then MsgBox(0, " error1.4.2", $error)
	$fhjglie = _EzMySql_Columns() ;返回结果列
	$fhjghang = _EzMySql_Rows() ;返回结果行
	_ArrayDisplay($aOk, "zhengshu>50 的数据 以二维数组的形式显示 (行):" & $fhjghang & "-" & $fhjglie & "(列) ")

EndIf ;控制代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值