问题
I need help in writing a function in C/C++ that receives two parameters: IP address and subnetmask.
The function needs to reutrn a list of all IP addresses that are in the associated network.
For example: Given two parameters: IP address = 192.168.33.72 and mask = 255.255.255.192 the function will return a list that contain the IP's 192.168.33.65 to 192.168.33.126.
回答1:
1) first you can transform the ipaddress
and the subnetmask
from string format to binary format with inet_pton()
.
2) make a check on the subnetmask
mask it should be a valid subnet mask
3) get the subnetmask
inverse value (~subnetmask
)
4)
for (i=1; i<(~subnetmask); i++) {
ip = ipaddress & (subnetmask + i);
//append ip to your ip list
}
来源:https://stackoverflow.com/questions/19728127/function-that-return-a-list-of-ip-addresses-for-a-given-ip-adress-and-subnetmask