Actually you are right.  This cr*p code is burried in util.c:

unsigned short in_isBroadcastAddress(struct in_addr *addr) {
  int i;

  if(addr == NULL)
    return 1;
  else if(addr->s_addr == 0x0)
    return 0; /* IP-less myGlobals.device (is it trying to boot via
DHCP/BOOTP ?) */
  else {
    for(i=0; i<myGlobals.numDevices; i++) {
      if(!myGlobals.device[i].virtualDevice) {
        if(myGlobals.device[i].netmask.s_addr == 0xFFFFFFFF) /* PPP */
          return 0;
        else if(((addr->s_addr | myGlobals.device[i].netmask.s_addr) ==
addr->s_addr)
                || ((addr->s_addr & 0x000000FF) == 0x000000FF)
                || ((addr->s_addr & 0x000000FF) == 0x00000000) /* Network
address */
                ) {
#ifdef DEBUG
          traceEvent(CONST_TRACE_INFO, "DEBUG: %s is a broadcast address",
intoa(*addr));
#endif
          return 1;
        }
      }
    }

    return(in_isPseudoBroadcastAddress(addr));
  }
}
 

Make it this:

unsigned short in_isBroadcastAddress(struct in_addr *addr) {
  int i;

  if(addr == NULL)
    return 1;
  else if(addr->s_addr == 0x0)
    return 0; /* IP-less myGlobals.device (is it trying to boot via
DHCP/BOOTP ?) */
  else {
    for(i=0; i<myGlobals.numDevices; i++) {
      if(!myGlobals.device[i].virtualDevice) {
        if(myGlobals.device[i].netmask.s_addr == 0xFFFFFFFF) /* PPP */ {
          return 0;
        } else if((addr->s_addr | myGlobals.device[i].netmask.s_addr) ==
addr->s_addr) {
#ifdef DEBUG
          traceEvent(CONST_TRACE_INFO, "DEBUG: %s is a broadcast address",
intoa(*addr));
#endif
          return 1;
        } else if((addr->s_addr & ~myGlobals.device[i].netmask.s_addr) ==
~myGlobals.device[i].netmask.s_addr) {
#ifdef DEBUG
          traceEvent(CONST_TRACE_INFO, "DEBUG: %s is a network address",
intoa(*addr));
#endif
          return 1;
        }
      }
    }

    return(in_isPseudoBroadcastAddress(addr));
  }
}


And let me know...

-----Burton

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
Kinnane, Scott
Sent: Monday, May 16, 2005 1:02 AM
To: [email protected]
Subject: [Ntop] Missing host with IP 10.20.3.0

Hi all,

Just wondering if anyone has seen the following problem:

We have a local subnet 10.20.0.0/255.255.0.0, however a user with an IP
address of 10.20.3.0 does not show up under any of the web tables with Ntop.
I tell ntop that 10.0.0.0/8 is a local network to make sorting the hosts
easier, but it doesn't show up under the "IP -> Summary -> Traffic" table,
either with the [All] option or [Local Option] selected.

How do I know 10.20.3.0 is doing anything at all? Tcpdump shows that a lot
(most) of the traffic on the monitored interface is related to this host.
The odd thing is, when I select (from the "IP -> Summary -> Traffic" table)
a remote host that 10.20.3.0 is making a connections to, it shows the ports
that connections are being made on - it doesn't list the 10.20.3.0 host.

Is it possible that a.b.c.0 is assumed to be a network IP address and is
therefore ignored? Has anyone seen this before? Note that the LAN subnet
makes it so the host portion is the last 2 bytes of the address (3.0), so it
should be a valid host IP.

System setup:
Linux Redhat 9 (running 2.6.7 kernel)
Ntop ver 3.1
Libpcap ver 0.7.2

Regards,

scott
_______________________________________________
Ntop mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop

_______________________________________________
Ntop mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop

Reply via email to