2 #include <gnio/ginet4address.h>
3 #include <gnio/ginetaddress.h>
4 #include <gnio/gresolver.h>
6 #include <glib/gprintf.h>
14 void print_address (GInetAddress *address, gpointer data);
17 print_address (GInetAddress *address, gpointer data)
19 gchar *string = g_inet_address_to_string (G_INET_ADDRESS (address));
21 g_printf ("%s\n", string);
27 resolve_callback (GObject *source, GAsyncResult *result, gpointer data)
31 GResolver *resolver = G_RESOLVER (source);
35 list = g_resolver_resolve_list_finish (resolver, result, &error);
38 g_error (error->message);
42 g_printf ("\nwww.google.com (list, async):\n");
44 g_list_foreach (list, (GFunc) print_address, NULL);
46 g_list_foreach (list, (GFunc) g_object_unref, NULL);
50 g_main_loop_quit (loop);
53 int main (int argc, char *argv[])
55 GInetAddress *address;
67 if (WSAStartup (MAKEWORD (2, 2), &wsaData) != 0)
71 loop = g_main_loop_new (NULL, FALSE);
73 address = (GInetAddress *) g_inet4_address_from_string ("127.0.0.1");
75 g_printf ("is floating: %d\n", g_object_is_floating (address));
77 g_printf ("%s:\n", g_inet_address_to_string (address));
79 g_printf ("is_any: %d, is_linklocal: %d, is_loopback: %d\n", g_inet_address_is_any (address), g_inet_address_is_linklocal (address), g_inet_address_is_loopback (address));
81 g_object_unref (address);
83 address = (GInetAddress *) g_inet4_address_from_string ("0.0.0.0");
85 g_printf ("\n%s:\n", g_inet_address_to_string (address));
87 g_printf ("is_any: %d, is_linklocal: %d, is_loopback: %d\n", g_inet_address_is_any (address), g_inet_address_is_linklocal (address), g_inet_address_is_loopback (address));
89 g_object_unref (address);
91 address = (GInetAddress *) g_inet4_address_from_string ("169.254.0.0");
93 g_printf ("\n%s:\n", g_inet_address_to_string (address));
95 g_printf ("is_any: %d, is_linklocal: %d, is_loopback: %d\n", g_inet_address_is_any (address), g_inet_address_is_linklocal (address), g_inet_address_is_loopback (address));
97 g_object_unref (address);
99 resolver = G_RESOLVER (g_object_new (G_TYPE_RESOLVER, NULL));
101 address = g_resolver_resolve (resolver, "www.yahoo.com", NULL, &error);
104 g_error (error->message);
108 g_printf ("\nwww.yahoo.com: %s\n", g_inet_address_to_string (address));
110 g_printf ("is_any: %d, is_linklocal: %d, is_loopback: %d\n", g_inet_address_is_any (address), g_inet_address_is_linklocal (address), g_inet_address_is_loopback (address));
112 g_object_unref (address);
114 g_resolver_resolve_list_async (resolver, "www.google.com", NULL, resolve_callback, NULL);
116 g_main_loop_run (loop);