Commit 3e7dba6
committed
gh-74713: Lib/ipaddress: support reverse pointer generation for networks
Before this change, DNS reverse pointer generation for network objects produced incorrect results, such as:
>>> ipaddress.IPv4Network('192.168.1.0/24').reverse_pointer
'0/24.1.168.192.in-addr.arpa'
>>> ipaddress.IPv6Network('2001:db8:1234::/48').reverse_pointer
'8.4./.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa'
This change introduces a more generalised reverse pointer generation algorithm, suitable for both address and network
objects.
The same code above, after applying this change:
>>> ipaddress.IPv4Network('192.168.1.0/24').reverse_pointer
'1.168.192.in-addr.arpa'
>>> ipaddress.IPv6Network('2001:db8:1234::/48').reverse_pointer
'4.3.2.1.8.b.d.0.1.0.0.2.ip6.arpa'
Getting a reverse pointer for a network, whose prefix size can't be exactly represented in a reverse pointer record,
will raise an exception:
>>> ipaddress.IPv4Network('192.168.1.0/28').reverse_pointer
ipaddress.NetmaskValueError: Reverse pointer cannot be generated for given prefix size
>>> ipaddress.IPv6Network('2001:db8:1234::/50').reverse_pointer
ipaddress.NetmaskValueError: Reverse pointer cannot be generated for given prefix size1 parent b6854c5 commit 3e7dba6
3 files changed
Lines changed: 58 additions & 6 deletions
File tree
- Lib
- test
- Misc/NEWS.d/next/Library
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1252 | 1252 | | |
1253 | 1253 | | |
1254 | 1254 | | |
1255 | | - | |
| 1255 | + | |
1256 | 1256 | | |
1257 | 1257 | | |
1258 | 1258 | | |
1259 | 1259 | | |
1260 | | - | |
1261 | | - | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
1262 | 1269 | | |
1263 | 1270 | | |
1264 | 1271 | | |
| |||
1880 | 1887 | | |
1881 | 1888 | | |
1882 | 1889 | | |
1883 | | - | |
| 1890 | + | |
1884 | 1891 | | |
1885 | 1892 | | |
1886 | 1893 | | |
1887 | 1894 | | |
1888 | | - | |
1889 | | - | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
1890 | 1904 | | |
1891 | 1905 | | |
1892 | 1906 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
723 | 723 | | |
724 | 724 | | |
725 | 725 | | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
726 | 744 | | |
727 | 745 | | |
728 | 746 | | |
| |||
879 | 897 | | |
880 | 898 | | |
881 | 899 | | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
882 | 918 | | |
883 | 919 | | |
884 | 920 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
0 commit comments