Commit 5a5c967
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 05e89c3 commit 5a5c967
File tree
3 files changed
+58
-6
lines changed- Lib
- test
- Misc/NEWS.d/next/Library
3 files changed
+58
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1255 | 1255 | | |
1256 | 1256 | | |
1257 | 1257 | | |
1258 | | - | |
| 1258 | + | |
1259 | 1259 | | |
1260 | 1260 | | |
1261 | 1261 | | |
1262 | 1262 | | |
1263 | | - | |
1264 | | - | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
1265 | 1272 | | |
1266 | 1273 | | |
1267 | 1274 | | |
| |||
1870 | 1877 | | |
1871 | 1878 | | |
1872 | 1879 | | |
1873 | | - | |
| 1880 | + | |
1874 | 1881 | | |
1875 | 1882 | | |
1876 | 1883 | | |
1877 | 1884 | | |
1878 | | - | |
1879 | | - | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
1880 | 1894 | | |
1881 | 1895 | | |
1882 | 1896 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
709 | 709 | | |
710 | 710 | | |
711 | 711 | | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
712 | 730 | | |
713 | 731 | | |
714 | 732 | | |
| |||
865 | 883 | | |
866 | 884 | | |
867 | 885 | | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
868 | 904 | | |
869 | 905 | | |
870 | 906 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
0 commit comments