Commit 630f24a
committed
gh-issue-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 8be8949 commit 630f24a
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 | |
|---|---|---|---|
| |||
1249 | 1249 | | |
1250 | 1250 | | |
1251 | 1251 | | |
1252 | | - | |
| 1252 | + | |
1253 | 1253 | | |
1254 | 1254 | | |
1255 | 1255 | | |
1256 | 1256 | | |
1257 | | - | |
1258 | | - | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
1259 | 1266 | | |
1260 | 1267 | | |
1261 | 1268 | | |
| |||
1835 | 1842 | | |
1836 | 1843 | | |
1837 | 1844 | | |
1838 | | - | |
| 1845 | + | |
1839 | 1846 | | |
1840 | 1847 | | |
1841 | 1848 | | |
1842 | 1849 | | |
1843 | | - | |
1844 | | - | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
1845 | 1859 | | |
1846 | 1860 | | |
1847 | 1861 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
690 | 690 | | |
691 | 691 | | |
692 | 692 | | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
693 | 711 | | |
694 | 712 | | |
695 | 713 | | |
| |||
842 | 860 | | |
843 | 861 | | |
844 | 862 | | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
845 | 881 | | |
846 | 882 | | |
847 | 883 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
0 commit comments