怎样修改客户端使其连上服务器,修改服务器发的RemoteCreatInstance Response报文中的地址信息后,客户端连不上服务器了...

小弟有些问题想要请教一下:

最近在做一个防火墙设备检索OPC流量并做ALG处理的一个项目,因为设备涉及到网络地址转换(NAT),所以IP层的地址会被修改,因为OPC协商时服务器发送的RemoteCreatInstance Response报文中携带了服务器端的地址和端口信息,因为做地址转换所以客户端不能看到服务器的真实网络地址,所以我需要将这个报文中的地址给换掉。现在的问题是如果修改前的地址和修改后的地址长度是一样的,如由1.1.1.1改成了2.2.2.2,那这样连接是没问题的,但如果长度不一样,如由10.10.10.10改成了1.1.1.1,就连不上,总是报参数错误的提示。长度不一样时我也会对应修改NumEntries,securityoffset等这一些涉及到长度和偏移的字段,我用wireshark抓包看到各字段都是对的,但这个response报文发到客户端后,客户端就报错了。不知道是我哪个地方漏改了还是有其他要注意的地方呢?希望大家知道的给个提示。另外好像里面的数据时四字节对齐的,所以我故意让修改前后地址的长度差也四字节的倍数,这样可以暂时忽略对齐问题。我客户端和服务器都是用的Matrikon OPC explorer。

5f86c9da5b8da6b436305c4f64d89a5d.png

如上图我主要就是修改StringBinding中的NetworkAddr。

fb584dcc07959caedf1402f50d598185.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值