diff --git a/pythonetc/README.md b/pythonetc/README.md
index 85b6c79..4009294 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -62,6 +62,8 @@ More:
1. ./slots-docs.md (5 November 2020, 18:00)
1. ./pydoc.md (10 November 2020, 18:00)
1. ./class-getitem.md (12 November 2020, 18:00)
+1. ./ipaddress.md (17 November 2020, 18:00)
+1. ./index.md (19 November 2020, 18:00)
Out of order:
diff --git a/pythonetc/index.md b/pythonetc/index.md
new file mode 100644
index 0000000..caf1645
--- /dev/null
+++ b/pythonetc/index.md
@@ -0,0 +1,47 @@
+In Python 2.5, [PEP-357](https://www.python.org/dev/peps/pep-0357/) allowed any object to be passed as index or slice into `__getitem__`:
+
+```python
+class L:
+ def __getitem__(self, value):
+ return value
+
+class C:
+ pass
+
+L()[C]
+#
+```
+
+ Also, it introduced a magic method `__index__`. it was passed instead of the object in slices and used in `list` and `tuple` to convert the given object to `int`:
+
+ ```python
+class C:
+ def __index__(self):
+ return 1
+
+# Python 2 and 3
+L()[C()]
+# <__main__.C ...>
+
+L()[C():]
+# Python 2:
+# slice(1, 9223372036854775807, None)
+# Python 3:
+# slice(<__main__.C object ...>, None, None)
+
+# python 2 and 3
+[1,2,3][C()]
+# 2
+```
+
+The main motivation to add `__index__` was to support slices in numpy with custom number types:
+
+```python
+two = numpy.int64(2)
+
+type(two)
+# numpy.int64
+
+type(two.__index__())
+# int
+```
diff --git a/pythonetc/ipaddress.md b/pythonetc/ipaddress.md
new file mode 100644
index 0000000..7cafa79
--- /dev/null
+++ b/pythonetc/ipaddress.md
@@ -0,0 +1,17 @@
+[ipaddress](https://docs.python.org/3/library/ipaddress.html) provides capabilities to work with IP addresses and networks (both IPv4 and IPv6).
+
+```python
+ip = ipaddress.ip_address('127.0.0.1')
+ip.is_private # True
+ip.is_loopback # True
+ip.is_global # False
+ip.is_multicast # False
+ip.is_reserved # False
+ip.is_unspecified # False
+ip.reverse_pointer # '1.0.0.127.in-addr.arpa'
+
+net = ipaddress.ip_network('192.168.0.0/28')
+net.is_private # True
+net.hostmask # IPv4Address('0.0.0.15')
+net.num_addresses # 16
+```