CPAL脚本自动化测试 ———— IP 系列函数

 TCP/IP 传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP 传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网路接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。


 IP API 包括用于网络信息检索的通用函数,例如查询已安装的网络接口卡 (NIC)、IP 地址、地址转换函数、错误处理等。 此外,IP API 还具有一些用于套接字操作的特殊功能,例如设置套接字选项或绑定。

IP 系列函数
NameDescriptionComment
IpAddAdapterAddress 将地址添加到具有给定索引的网络接口使用过程中需要注意 TCP/IP 堆栈选择
IpBind 通过指定的 socket 将地址和端口相关联使用 TcpConnect 或 TcpListen 时不要使用 IpBind
IpGetAdapter 获取指定通道的接口索引对于 VLAN ,必须提供通道和 vlanId
IpGetAdapterAddress 检索与网络接口关联的地址CANoe 堆栈中考虑了所有分配的地址,包括 VLAN 地址
IpGetAdapterAddressAsString 检索与指定网络接口关联的第一个地址并使用字符串表示-
IpGetAdapterChannel 返回具有给定索引的网络适配器所连接的以太网通道的编号(Eth 1 为 1)-
IpGetAdapterAddressCount 返回属于给定地址组中分配给具有给定索引的适配器的地址计数-
IpGetAdapterCount返回本地计算机的网络接口数CANoe 堆栈中考虑了所有分配的地址,包括 VLAN 地址
IpGetAdapterDescription 检索指定网络接口的描述返回的错误值:
ERROR_NOT_ENOUGH_MEMORY (8): 存储描述的数组空间小
WSA_INVALID_PARAMETER (87): 网络接口索引无效
IpGetAdapterGateway检索与指定网络接口关联的默认网关地址在 on prestart 期间网关信息尚不可用
堆栈完全初始化,在 on start 首先可用
IpGetAdapterGatewayAsString 检索与指定网络接口关联的默认网关地址并使用字符串表示在 on prestart 期间网关信息尚不可用
堆栈完全初始化,在 on start 首先可用
IpGetAdapterMacId 获取接口的 MAC ID错误码:
WSA_INVALID_PARAMETER (87): 网络接口索引无效
WSAEADDRNOTAVAIL (10049): 未找到MAC ID
IpGetAdapterMask 检索与指定网络接口关联的地址掩码错误码:
ERROR_NOT_ENOUGH_MEMORY (8): 掩码数组小
WSA_INVALID_PARAMETER (87): 网络接口索引无效
WSAEADDRNOTAVAIL (10049): 无可用适配器地址
IpGetAdapterMaskAsString 检索与指定网络接口关联的地址掩码并使用字符串表示错误码:
ERROR_NOT_ENOUGH_MEMORY (8): 掩码数组小
WSA_INVALID_PARAMETER (87): 网络接口索引无效
WSAEADDRNOTAVAIL (10049): 无可用适配器地址
IpGetAdapterVlanDefaultPriority 获取给定适配器的 VLAN 优先级错误码:
WSA_INVALID_PARAMETER (87): 网络接口索引无效/非 VLAN 适配器
SOCKET_ERROR (-1): 函数执行失败
IpGetAdapterVlanId 获取给定适配器的 VLAN ID错误码:
WSA_INVALID_PARAMETER (87): 网络接口索引无效/非 VLAN 适配器
SOCKET_ERROR (-1): 函数执行失败
IpGetAddressAsArray 将冒号表示法的地址字符串转换为地址字节为网络顺序的 16 字节数组-
IpGetAddressAsNumber 将数字地址转换为点表示法的地址字符串-
IpGetHostByName 获取给定主机名的地址首先在 CANoe 模拟设置中搜索给定的主机名,然后在指定的数据库中搜索。 如果名称未在那里定义,则使用操作系统堆栈通过 DNS 请求确定。 为此,必须在 CANoe TCP/IP 堆栈配置对话框中选择操作系统堆栈。 然后在相应的回调函数 OnIpGetHostByName 中返回结果
IpGetLastError 返回上次失败的操作的 Winsock 2 错误代码-
IpGetLastSocketError 返回指定 socket 上最后一次操作失败的 Winsock 2 错误代码-
IpGetLastSocketErrorAsString 检索在指定 socket 上失败的最后一个操作的错误消息错误码:
WSA_INVALID_PARAMETER (87): socket 无效
IpGetSocketAddressFamily 返回给定 socket 的地址族AF_INET (2): IPv4 地址
AF_INET6 (28): IPv6 地址
SOCKET_ERROR (-1): 无效的 socket
IpGetSocketName 返回 socket 的本地绑定地址和端口错误码:
WSA_INVALID_PARAMETER (87): socket 的索引无效
SOCKET_ERROR (-1): 函数执行失败
IpGetSocketOption 读取给定 socket 选项的值使用过程中需要注意 TCP/IP 堆栈选择
IpGetStackParameter 获取 TCP/IP 堆栈的给定参数的值参数的名称以点分隔的路径形式给出
IpJoinMulticastGroup 在给定 socket 上的添加组播组要接收多播消息,必须先加入多播组
要离开多播组,使用函数 IpLeaveMulticastGroup
发送多播消息之前,必须调用 IpSetMulticastInterface
IpLeaveMulticastGroup 离开先前加入的多播组之后不再接收组播消息
IpRemoveAdapterAddress 删除具有给定索引的网络接口中的地址使用过程中需要注意 TCP/IP 堆栈选择
IPRouteAddGateway 向 TCP/IP 堆栈添加网关路由添加路由后,tcp/ip 堆栈将通过给定的网关发送数据包至该目标地址或网络
IPRouteAddHost 将静态主机路由添加到 tcp/ip 堆栈中某个接口的路由表中接口或网络路由必须已经存在
IPRouteAddInterface 将接口路由添加到 TCP/IP 堆栈安装这样的路由后,tcp/ip 堆栈将在给定接口上发送目的地为该目的地的数据包
IPRouteDeleteGateway 删除 TCP/IP 堆栈添加的网关路由根据给定的掩码 (IPv4) 或前缀 (IPv6),删除到单个主机或网络的路由
IPRouteDeleteHost 从 TCP/IP 堆栈中删除主机路由接口或网络路由必须已经存在
IPRouteDeleteInterface 从 TCP/IP 堆栈中删除接口路由-
IpSetAdapterGateway 设置默认网关地址只能有一个默认网关并且旧的默认网关地址将被覆盖
默认网关必须位于网络堆栈中配置的子网之一中
要移除网关,请将地址设置为 0.0.0.0 (IPv4) 或 :: (IPv6)
IPSetAdapterStatus 向上或向下设置 TCP/IP 堆栈的特定适配器设置适配器后,该适配器的所有 IP 地址将被删除,并且将停止在该适配器上发送或接收数据包
如果在此适配器上配置的网络中配置了默认网关,则它也将被删除
再次设置适配器时,将重新配置 TCP/IP 堆栈对话框中配置的地址并再次设置默认网关
IpSetMulticastInterface 设置传出组播 Message 接口要接收组播消息,组播组必须先加入 IpJoinMulticastGroup
要离开组播组,请使用 IpLeaveMulticastGroup
IpSetSocketOption 修改 socket 选项使用过程中需要注意 TCP/IP 堆栈选择
IpSetStackParameter 设置 TCP/IP 堆栈的给定参数的值参数的名称以点分隔的路径形式给出
OnIpAddressAdded 当地址被添加到网络接口时被调用回调仅适用于使用单个 TCP/IP 堆栈实例的模拟节点
OnIpAddressRemoved 当地址从网络接口中删除时调用回调仅适用于使用单个 TCP/IP 堆栈实例的模拟节点
OnIpGetHostByName 当阻塞 IpGetHostByName 函数完成时调用它-
OnIpReceivePrepare 在接收到的数据包被分派到 TCP/IP 堆栈之前分派可以操纵包的内容或阻止从总线接收包
OnIpSendPrepare 在 TCP/IP 堆栈发送数据包之前调用可以操纵包的内容或阻止从总线接收包

 关于 socket 的 option 的介绍,请查看下表。对于参数 Stacks 的值做一个单独的说明:
  C:CANoe 内部网络栈支持
  W:Windows 网络堆栈支持
Socket Options: IPPROTO_IP
Socket OptionSet/GetDescriptionTypeStackComment
IP_TOSset/get在此 socket 上的传出数据报中设置或获取 IPv4 协议中的服务类型字段DWORDC/W该值必须在 0-255 的范围内
IP_TTL设置或获取此 socket 上传出数据报中 IP 标头的 TTL 字段的值DWORD(boolean)C/W该值必须在 0-255 的范围内
IP_MULTICAST_TTL设置或获取此 socket 上 IPv4 组播流量的 TTL 字段值DWORDC/W-
IP_MULTICAST_LOOP此选项控制在同一节点上发送的多播数据是否会被加入同一多播组的侦听套接字接收DWORD(boolean)C/W-
IP_DONTFRAGMENT如果设置为TRUE,则IP标头中的不翻译标志被设置,数据将不再翻译DWORD(boolean)C/W仅适用于 UDP 套接字
IP_RECEIVE_BROADCAST允许或禁止接收广播消息DWORD(boolean)W仅适用于 UDP 套接字
IP_PORTRANGE选择用于未指定端口的范围,支持以下值:
IP_PORTRANGE_DEFAULT (0)
IP_PORTRANGE_HIGH (1)
IP_PORTRANGE_LOW (2)
DWORDC-
IP_ONESBCAST当在 UDP socket 上设置此选项时,传出广播数据报的目标地址将设置为无向广播地址DWORD(boolean)C-
IP_BINDANY当此选项设置为非零值时,可以绑定到任何地址,甚至是未绑定到任何接口的地址DWORD(boolean)C-
IP_MINTTL设置接收数据包时必须具有的最小可接受 TTL 值DWORDC如果 TTL 值较低,则数据包将被丢弃
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值