CSci 150: Foundations of computer science
Home Syllabus Readings Projects Tests

Network

IP addressdomain namedelay
1176.221.87.1 1
292.43.37.126 f126.broadband2.quicknet.se1
310.5.12.1 10.5.12.1 (private)1
4212.247.178.9 212.247.178.9 (RIPE NCC)1
5130.244.39.46 vst-ncore-1.bundle-ether1.tele2.net1
6130.244.71.178 kst5-core-1.bundle-ether6.tele2.net3
7130.244.39.28 gbg-core-1.hundredgige0-6-0-0.tele2.net9
8130.244.205.179 ams-core-2.bundle-ether1.tele2.net24
9130.244.71.245 nyc9-peer-1.ae0-unit0.tele2.net98
10144.223.26.73 sl-gw50-nyc-.sprintlink.net99
11144.232.1.43 sl-crs2-nyc-lc1-.sprintlink.net99
12144.232.6.6 144.232.6.6 (Sprint)100
1312.122.80.238 cr2.n54ny.ip.att.net143
1412.122.3.38 cr2.wswdc.ip.att.net143
1512.122.2.33 cr1.wswdc.ip.att.net144
1612.122.18.29 cr2.sl9mo.ip.att.net146
1712.122.2.217 cr1.sl9mo.ip.att.net145
1812.122.157.66 cr82.ltrar.ip.att.net147
1912.122.157.113 12.122.157.113 (AT&T)191
2012.251.120.38 12.251.120.38 (AT&T)142
21209.65.57.62 209.65.57.62142
22209.65.57.4 209.65.57.4145

A primitive way of retrieving Web pages:

import socket

url = input('URL? ')
if url.startswith('http://'):
    url = url[7:]
slash = url.find('/')
if slash < 0:
    hostname = url
    pagename = '/'
else:
    hostname = url[:slash]
    pagename = url[slash:]

conn = socket.socket(socket.AF_INETsocket.SOCK_STREAM)
conn.connect((hostname80))
to_send = [
    'GET ' + pagename + ' HTTP/1.1',
    'Host: ' + hostname,
    '']
for line in to_send:
    utf8 = bytes(line + '\r\n''UTF-8')
    conn.send(utf8)

next = conn.recv(102400)
length = 0
while next:
    length += len(next)
    next_str = next.decode('UTF-8')
    print(next_str)
    next = conn.recv(102400)
conn.close()
print('')
print('Total length: ' + str(length))