gpt4 book ai didi

delphi - 如何在delphi中完全从Cisco防火墙获取系统日志消息?

转载 作者:行者123 更新时间:2023-12-02 12:14:40 24 4
gpt4 key购买 nike

我想从端口 514 上的 UDP 读取系统日志。我使用的是 delphi 2010。我放置了一个 IdUDPServer 并将 DefaultPort 设置为 514,将 BufferSize 设置为 1024。该系统日志由 Cisco 防火墙 5505 生成。我像这个命令一样向我的防火墙发送 ping 操作。 平 192.168.1.100 -t当我运行 kiwi(一种监视系统日志消息的软件)时,每个 ping 都会收到 2 条消息,如下所示。

%ASA-6-302021:拆除 faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 的 ICMP 连接%ASA-6-302020:为 faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 构建入站 ICMP 连接

但在我的监听器中,每次 ping 只会收到一条消息。像这样%ASA-6-302020:为 faddr 192.168.1.4/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0 构建入站 ICMP 连接

我不知道为什么我无法在监听器中收到第一条消息。我在 IdUDPServer 的 OnRead 事件上编写了这样的代码

procedure TMyTestOnSyslog.Listener514UDPRead(
AThread: TIdUDPListenerThread; AData: TBytes; ABinding: TIdSocketHandle);
var S:string;
i:Integer;
begin
S:='';
for i := 0 to High(AData) do
S:=S+chr(Adata[i]);
...
end;

我该怎么办? :D

最佳答案

当我调用我的一位 friend 询问此事时,我感到很失望。他说最好不要在delphi中使用Indy,因为它有bug。所以我搜索了其他组件。有一个开源的。 ICS(Internet Component Suite)运行良好。您可以获得任何 delphi 版本或 C++ Builder 的开源代码!

看到这个:http://www.overbyte.be/

在产品部分选择ICS即可下载最新版本。幸运的是它有很多组件并且它有TSysLogServer。它不会丢失任何 UDP 数据包。确实,UDP 不保证数据包不丢失。但是当我看到其他程序(如 kiwi 和wireshark)正确获取数据包时,我应该知道程序中问题的根源是组件。

所以我的问题的答案是:不要使用 INDY !!!

我不知道 Indy 只是在 delphi 中存在这样的问题,或者在其他语言中也有同样的问题。 :|

关于delphi - 如何在delphi中完全从Cisco防火墙获取系统日志消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com