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