'''[http://www.ietf.org/rfc/rfc0791.txt%|%Internet Protocol]''', or '''IP''', is a communication protocol for packet-switched networks. ** See Also ** [Handling internet addresses]: [how to find my own IP address]: [Entry box validation for IP address]: [DNS]: [Internet Checksum]: The currently-used checksum in IPV4 as described in [RFC] [http://www.ietf.org/rfc/rfc0791.txt%|%791] [IP-geolocation]: ** Tools ** [A little 6to4 calculator]: a program that a list of [IP]v4 addresses on the command line, and calculates the respective [IPv6] address prefixes for the 6to4 network [A Little CIDR Calculator]: [IP Calculator GUI]: Small calculator using Tile only using IPv4 and no tcllib [ip-drop%|%ip-drop]: drop IP addresses at the firewall when an attack is seen in the hosts log files [IP-to-country lookup]: [http://code.google.com/p/netaddr-tcl/%|%netaddr-tcl]: a package that does almost the smae thing, but with some additional functionality [Simple TCP/IP proxy]: [tcllib] [tcllib_ip]: provides commands to manipulate [IP]v4 and IPv6 addresses. ** Documentation ** [RFC] [http://www.ietf.org/rfc/rfc0791.txt%|%791, Internet Protocol]: [RFC] [https://tools.ietf.org/html/rfc1726%|%1726, Technical Criteria for Choosing IP the Next Generation (IPng)]: ** Description ** '''Internet Protocol''' describes a how interconnected computer systems address and talk to each other. Usually you have [TCP] or [UDP] layered over the top to provide port-based addressing and checksums... The most common version of IP at the moment is version 4, though you may well also see version 6 about from time to time (mostly at very large ISPs though.) ** Iterate over an IP address Range ** [kbk] [http://paste.tclers.tk/2986%|%paste] this: ====== set spec 192.168.1.0/28 regexp {(\d+)[.](\d+)[.](\d+)[.](\d+)/(\d+)} $spec -> b0 b1 b2 b3 size set quad [expr {($b0 << 24) | ($b1 << 16) | ($b2 << 8) | $b3}] for {set i 0} {$i < (1<<(32-$size))} {incr i} { set q2 [expr {$quad + $i}] set result [expr {$q2 & 0xff}] for {set j 0} {$j < 3} {incr j} { set q2 [expr {$q2 >> 8}] set result [expr {$q2 & 0xff}].$result } puts $result } ====== <> Binary Data | Glossary | Internet | Networking | Protocol