📄 ipiface.c
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details */#include "ip.h"#include "ipiface.h"IP_IFACE *ipIfaceList = 0;BOOLEAN IpIfaceRegister(IP_IFACE *iface){ ARP_DESCR *arp; iface->addrNet = iface->addr & iface->mask; iface->addrBroadcast = iface->addr | ~iface->mask; if (iface->iface->arp != MAC_ARP_NONE) { arp = DnpapMalloc(sizeof(ARP_DESCR)); arp->iface = iface->iface; arp->prot = MAC_PROT_IP; *(DWORD *)arp->addr = IpH2NDWord(iface->addr); arp->addrLength = 4; if (!ArpRegister(arp)) return FALSE; iface->arp = arp; } else { iface->arp = 0; } iface->next = ipIfaceList; ipIfaceList = iface; return TRUE;}void IpIfaceRemove(IP_IFACE *iface){ IP_IFACE **p; for (p=&ipIfaceList; *p!=0; p=&(*p)->next) { if (*p==iface) { *p = (*p)->next; break; } } if (iface->arp != 0) { ArpRemove(iface->arp); DnpapFree(iface->arp); }}void IpIfaceSwitch(IP_IFACE *iface, BOOLEAN up){ iface->up = up;}BOOLEAN IpIfaceIsForMe(DWORD addr){ IP_IFACE *i; if (addr == 0xffffffff || addr == 0) return TRUE; for (i=ipIfaceList; i!=0; i=i->next) { if (i->up) { if (addr == i->addr || addr == i->addrNet || addr == i->addrBroadcast) return TRUE; } } return FALSE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -