- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
下午好。没有人面对在 Delphi 中添加 Windows 防火墙规则的问题吗?我需要限制来自特定 IP 地址的传入和传出连接。此代码在启动时向我抛出一个应用程序错误:
Exception EVariantInvalidOpError in module Project1.exe at 00033E74. Invalid variant operation.
有没有人有什么错误?
procedure TForm1.FormCreate(Sender: TObject);
Const
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_IP_PROTOCOL_UDP = 17;
NET_FW_ACTION_ALLOW = 1;
NET_FW_RULE_DIR_in = 1;
var
CurrentProfiles : OleVariant;
fwPolicy2 : OleVariant;
RulesObject : OleVariant;
NewRule : OleVariant;
txtAddress : OleVariant;
NET_FW_ACTION_ : OleVariant;
NET_FW_RULE_DIRECTION_: OleVariant;
begin
// Create the FwPolicy2 object.
fwPolicy2 := CreateOleObject('HNetCfg.FwPolicy2');
RulesObject := fwPolicy2.Rules;
CurrentProfiles := fwPolicy2.CurrentProfileTypes;
txtaddress.text:='192.168.1.33';
//Create a Rule Object.
NewRule := CreateOleObject('HNetCfg.FWRule');
newrule.Name:= 'BrutalNT: IP Access Block ' + txtAddress.Text;
newrule.Description := 'Block Incoming Connections from IP Address.';
newrule.Action := 1;
newrule.Direction := NET_FW_RULE_DIR_IN;
newrule.Enabled := true;
newrule.InterfaceTypes := 'All';
newrule.RemoteAddresses := txtAddress.Text;
//Add a new rule
RulesObject.Add(NewRule);
end;
最佳答案
您正在使用 txtAddress : OleVariant
但背后没有任何结构。所以你不能使用像 txtAddress.text
这样的东西,因为没有任何地方可以映射它。
只需将类型更改为string
,txtAddress
无需为OleVariant
类型。
procedure TForm1.FormCreate(Sender: TObject);
Const
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_IP_PROTOCOL_UDP = 17;
NET_FW_ACTION_BLOCK = 0;
NET_FW_ACTION_ALLOW = 1;
NET_FW_RULE_DIR_IN = 1;
var
CurrentProfiles : OleVariant;
fwPolicy2 : OleVariant;
RulesObject : OleVariant;
NewRule : OleVariant;
txtAddress : string; // OleVariant;
begin
// Create the FwPolicy2 object.
fwPolicy2 := CreateOleObject('HNetCfg.FwPolicy2');
RulesObject := fwPolicy2.Rules;
CurrentProfiles := fwPolicy2.CurrentProfileTypes;
txtaddress{.text}:='192.168.1.33';
//Create a Rule Object.
NewRule := CreateOleObject('HNetCfg.FWRule');
Newrule.Name := 'BrutalNT: IP Access Block ' + txtAddress{.Text};
Newrule.Description := 'Block Incoming Connections from IP Address.';
Newrule.Action := NET_FW_ACTION_BLOCK{1};
Newrule.Direction := NET_FW_RULE_DIR_IN;
Newrule.Enabled := true;
Newrule.InterfaceTypes := 'All';
Newrule.RemoteAddresses := txtAddress{.Text};
//Add a new rule
RulesObject.Add(NewRule);
end;
顺便说一句如果你想阻止你必须设置NewRule.Action := 0;
(NET_FW_ACTION_BLOCK)
关于windows - 通过 API Windows Firewall Delphi 添加规则阻止 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25281216/
RFC 5780对于 STUN,为服务器发送回请求客户端的 STUN 消息响应定义了 Response-Origin 属性。 它描述为: The RESPONSE-ORIGIN attribute i
我正在关注 excellent french course专为 symfony 4 设计并开始适应 symfony 5。 我正在尝试在用户进入管理/注销路由时创建重定向路由。根据Symfony 5 o
在机器上运行的防火墙是否只阻止来自该机器外部的东西,或者它们是否阻止通过端口进行通信的机器上的进程之间的通信? 具体来说,我正在编写一个 Windows 服务,它将为机器上的其他进程公开一个 http
我需要实现一个UDP协议(protocol)。 PC 必须在专用 UDP 端口上监听传入数据包。它还发送数据包(应答)。该应用程序在 Windows XP、7、8、...上运行。 Windows 防火
我知道我可以使用netsh advfirewall firewall add rule或wf.msc创建新的防火墙规则;但是当我以这种方式创建规则时,它将没有 groupName ,因此我无法同时管理
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我们可以手动或以编程方式更改或优先选择一个 Windows 防火墙规则而不是其他规则吗? 实际上,我添加了一个防火墙规则来阻止所有出站流量。然后我又添加了一个关于应用程序的防火墙出站规则,我可以在出站
我有一个相当大的应用程序,它使用 MSDTC。我应该打开多少个端口?有什么办法可以确定吗? 编辑:我知道 什么 我需要打开的端口,我不知道多少我需要。 最佳答案 我想 Migol 想知道 RPC dy
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 6年前关闭。
我的防火墙当前处于非事件状态。 # systemctl status firewalld firewalld.service Loaded: masked (/dev/null) Ac
安装Firewall命令: yum install firewalld firewalld-config Firewall开启常见端口命令: firewall-cmd --zon
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 12年前关闭。 Improve this qu
我正在尝试从 firewall-cmd 中删除一些丰富的规则,它似乎有效: firewall-cmd --remove-rich-rule 'rule family="ipv4" source
我们有一个应用程序可以在我们客户的(Windows 操作系统/PC)计算机上自动安装自身的升级。它是轻量级的 (650K),可以为我们的客户完成一项非常具体的任务,帮助我们为他们收集数据,作为我们为客
我已为 Azure 存储帐户启用虚拟网络和防火墙访问限制,但遇到问题,即我无法从 Azure Functions(ASE 环境)访问存储帐户,尽管事实上 ASE 公共(public)地址已添加为异常(
有我的测试 nft 规则集 ,除了 table inet test 之外的所有工作,但表 f2b-table 绝对相似(除了 drop vs接受)并且它工作正常: table inet f2b-tab
我需要查询、修改、添加、删除规则。我还没有找到任何 API 来执行此操作。 我发现的最接近的是 pfctl 工具,它使用 pfctl -s 和 pfctl -f 来转储规则、修改并重新添加它们。我考虑
有我的测试 nft 规则集 ,除了 table inet test 之外的所有工作,但表 f2b-table 绝对相似(除了 drop vs接受)并且它工作正常: table inet f2b-tab
我想在端口 80 上捕获所有要发送到转发地址的 tcp 数据包,并将它们传递给用户空间程序进行修改。我知道如何使用 IPtables 规则来做到这一点,例如 iptables -A FORWARD .
我使用 AVG,并注意到在安装需要互联网访问的程序时,它们经常会向 AVG 的防火墙添加“受信任的规则”,从而赋予它们适当的互联网访问权限。有谁知道这是如何实现的? 最佳答案 您可以在安装过程(MSI
我是一名优秀的程序员,十分优秀!