i have an application doing:
Code: Select all
(define (do-udp-connect fd)
(letn ((peer (net-receive-from fd 1))
(last-error (net-error)))
(if (nil? last-error)
(let ((ip (nth 1 peer)))
(if (!= last-udp-ip-seen ip)
(begin
(log-n-block ip (target-ip fd) (target-port fd) "udp")
(set 'last-udp-ip-seen ip)))
true)
(begin
(set 'prob-fd fd)
(set 'last-net-error last-error)
nil))))
eg. the micro$oft pop-up "service" peddling registry-fix software.
funny thing is this: i have all sorts of entries in the log showing
11-digit IPs like (example) "221.208.208.10". when checking the firewall
log i notice that this particular IP _never_ showed up, but eg.
"221.208.208.101" or "221.208.208.100". pulling my hair, time passes. it
occurs to me to count the digits of the IPs and voila: never once does
a (valid!) _12_ digit IP (like xxx.xxx.xxx.xxx, with x=anydigit) get
returned!
all sorts of other IPs of varying string length, as if there was a
limit built-in to newlisp stating that IPs like "221.208.208.101"
cannot happen. could someone please check newlisp's C-source or verify
this? oh, by the way, a similiar routine "do-tcp-connect" exists using
"net-peer" to aquire the peers IP, and it, too, shows this behaviour.
i can corelate events logged by "log-n-block", which keeps timestamps,
to firewall entries made by tcpdump, and it really looks like 12-digit
IPs triggered the events, but got logged by newlisps routines with the
last digit chopped off!
-- clemens