Updated 2015-03-30 12:23:51 by dbohdan

Internet Protocol, or IP, is a communication protocol for packet-switched networks.

See Also  edit

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 791
IP-geolocation

Tools  edit

A little 6to4 calculator
a program that a list of IPv4 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
drop IP addresses at the firewall when an attack is seen in the hosts log files
IP-to-country lookup
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 IPv4 and IPv6 addresses.

Documentation  edit

RFC 791, Internet Protocol
RFC 1726, Technical Criteria for Choosing IP the Next Generation (IPng)

Description  edit

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  edit

kbk 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
}