2023-08-25 20:57:09 +02:00
|
|
|
## About
|
|
|
|
|
|
|
|
isinetaddr is a simple C library that provides an interface that can
|
2023-08-26 01:46:43 +02:00
|
|
|
be used to validate one or more IPv4 addresses. The library is guided
|
|
|
|
by easy to extend [testcases](test/isinetaddr_test.c) that help verify
|
|
|
|
safety and correctness.
|
2023-08-25 20:57:09 +02:00
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
|
|
### IPv4
|
|
|
|
|
|
|
|
The following example demonstrates the `isinetaddr` function with
|
|
|
|
both valid and invalid inputs. The `isinetaddr` function returns 1
|
|
|
|
when the input given is valid, and otherwise returns 0.
|
|
|
|
|
|
|
|
```C
|
|
|
|
#include <isinetaddr.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
const char *strings[] = {
|
|
|
|
"127.0.0.1", "1.1.1.1", "0.0.0.0",
|
|
|
|
"foobar", "0.0.0.0.0"
|
|
|
|
};
|
|
|
|
|
|
|
|
int
|
|
|
|
main(void)
|
|
|
|
{
|
|
|
|
const char *str;
|
|
|
|
const int i = sizeof(strings) / sizeof(strings[0]);
|
|
|
|
for (int j = 0; j < i; j++) {
|
|
|
|
str = strings[j];
|
2023-08-25 21:18:35 +02:00
|
|
|
if (isinetaddr(str)) {
|
2023-08-25 20:57:09 +02:00
|
|
|
printf("%s is a valid IPv4 address\n", str);
|
|
|
|
} else {
|
|
|
|
printf("%s is an invalid IPv4 address\n", str);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return EXIT_SUCCESS;
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
When the above source code is compiled and run the output is
|
|
|
|
expected to be as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ cc -Iinclude src/isinetaddr.c share/isinetaddr/examples/IPv4.c -o example
|
|
|
|
$ ./example
|
|
|
|
127.0.0.1 is a valid IPv4 address
|
|
|
|
1.1.1.1 is a valid IPv4 address
|
|
|
|
0.0.0.0 is a valid IPv4 address
|
|
|
|
foobar is an invalid IPv4 address
|
|
|
|
0.0.0.0.0 is an invalid IPv4 address
|
|
|
|
```
|
|
|
|
|
|
|
|
## Sources
|
|
|
|
|
|
|
|
* [Source code (GitHub)](https://github.com/0x1eef/isinetaddr#readme)
|
|
|
|
* [Source code (GitLab)](https://gitlab.com/0x1eef/isinetaddr#about)
|
|
|
|
|
|
|
|
## <a id="license"> License </a>
|
|
|
|
|
|
|
|
[BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
|
|
|
|
<br>
|
|
|
|
See [LICENSE](./LICENSE).
|