我有一个扩展名为.pcap
的文件,我希望将此文件的所有数据插入到SQL Server数据库的表中。
我尝试使用BULK INSERT
,因为我使用它来加载.csv
文件并在表格中插入csv文件的所有数据。但是现在我想加载一个.pcap
文件并将该文件的数据插入到SQL Server数据库中。
我可以在WireShark中打开.pcap
文件,但我想将所有数据加载到SQL Server数据库中。下面是我试图做的代码::
CREATE TABLE #DataUpdation
(
Number BigInt
,Time_ VarChar(512)
,Source_ VarChar(512)
,Destination_ VarChar(512)
,Protocol_ VarChar(512)
,Length_ VarChar(512)
,Info VarChar(8000)
)
DECLARE @Query VARCHAR(Max)
SET @Query=
'BULK INSERT #DataUpdation
FROM '+char(39)+'C:\Sample.pcap'+char(39)+'
WITH
(
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'',
FIRSTROW = 2 ,
MAXERRORS =0
)'
EXECUTE(@Query) ;
这是错误:
Msg 4866,Level 16,State 8,Line 1
批量加载失败。第1行第7列的数据文件中的列太长。验证是否正确指定了字段终止符和行终止符。Msg 7301,Level 16,State 2,Line 1
无法从OLE DB提供程序“BULK”获取链接服务器“(null)”所需的接口(“IID_IColumnsInfo”)。
我用谷歌搜索它来获取.pcap
文件的字段终止符,但没有运气......
提前致谢。
答案 0 :(得分:0)
我用谷歌搜索它来获取
.pcap
文件的字段终止符,但没有运气......
no"字段终结符"对于pcap文件,这就是你没有运气的原因。
pcap文件有一堆记录,包含在网络上传输的原始数据包字节;它没有你列出的值 - " Number"只是数据包的序列号(第一个数据包有1个,第二个数据包有2个等),其余部分是Wireshark或TShark根据规范(或反向工程信息)解析原始数据包字节的结果对于数据包中的协议,它们不会直接出现在pcap文件中。
您可以做的是在数据包上运行TShark,捕获它打印的输出列,然后处理 数据并将其放入数据库。
答案 1 :(得分:0)
以下是将pCap文件转换为csv格式的命令:
tshark -T fields -n -r {捕获文件的路径名} -E separator =, - e {first field name} -e {second field name} ...> {the 输出文件的路径名}
其中ng-app
是您正在阅读的捕获文件的路径名,{the pathname of the capture file}
等等是字段的名称,{first field name}, {second field name}
是输出的路径名文件。
以下是TShark将pCap文件转换为CSV文件格式的最终命令:
{the pathname of the output file}
现在我们有了CSV格式的pCap文件,现在可以在sql server数据库表中插入/添加它。
注意: tshark -T fields -n -r C:\capture.pcap -E separator=, -e ip.src -e ip.dst >C:\output.csv
= tshark