From 6722cfc3e6919908913b3528ff6b1cd0a21e549d Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 20 Dec 2001 07:42:00 +0000 Subject: added net lookup command (This used to be commit 51268c512dbae94aba308668df9facaf15a2ce9e) --- source3/utils/net.c | 4 ++- source3/utils/net_lookup.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 source3/utils/net_lookup.c (limited to 'source3/utils') diff --git a/source3/utils/net.c b/source3/utils/net.c index 3f6e9268e4..a87f11b57f 100644 --- a/source3/utils/net.c +++ b/source3/utils/net.c @@ -268,7 +268,7 @@ static int help_usage(int argc, const char **argv) "\n"\ "Valid functions are:\n"\ " RPC RAP ADS FILE SHARE SESSION SERVER DOMAIN PRINTQ USER GROUP VALIDATE\n"\ -" GROUPMEMBER ADMIN SERVICE PASSWORD TIME\n"); +" GROUPMEMBER ADMIN SERVICE PASSWORD TIME LOOKUP\n"); return -1; } @@ -296,6 +296,7 @@ static int net_help(int argc, const char **argv) {"SERVICE", net_rap_service_usage}, {"PASSWORD", net_rap_password_usage}, {"TIME", net_time_usage}, + {"LOOKUP", net_lookup_usage}, {"HELP", help_usage}, {NULL, NULL}}; @@ -324,6 +325,7 @@ static struct functable net_func[] = { {"SERVICE", net_rap_service}, {"PASSWORD", net_rap_password}, {"TIME", net_time}, + {"LOOKUP", net_lookup}, {"HELP", net_help}, {NULL, NULL} diff --git a/source3/utils/net_lookup.c b/source3/utils/net_lookup.c new file mode 100644 index 0000000000..21f3eb033d --- /dev/null +++ b/source3/utils/net_lookup.c @@ -0,0 +1,62 @@ +/* + Samba Unix/Linux SMB client library + Version 3.0 + net lookup command + Copyright (C) 2001 Andrew Tridgell (tridge@samba.org) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#include "includes.h" +#include "../utils/net.h" + +int net_lookup_usage(int argc, const char **argv) +{ + d_printf( +"net lookup host HOSTNAME \n\tgives IP for a hostname\n\n"\ +"\n"); + return -1; +} + +/* lookup a hostname giving an IP */ +static int net_lookup_host(int argc, const char **argv) +{ + struct in_addr ip; + int name_type = 0x20; + + if (argc == 0) return net_lookup_usage(argc, argv); + if (argc > 1) name_type = strtol(argv[1], NULL, 0); + + if (!resolve_name(argv[0], &ip, name_type)) { + /* we deliberately use DEBUG() here to send it to stderr + so scripts aren't mucked up */ + DEBUG(0,("Didn't find %s#%02x\n", argv[0], name_type)); + return -1; + } + + d_printf("%s\n", inet_ntoa(ip)); + return 0; +} + + +/* lookup hosts or IP addresses using internal samba lookup fns */ +int net_lookup(int argc, const char **argv) +{ + struct functable func[] = { + {"HOST", net_lookup_host}, + {NULL, NULL} + }; + + return net_run_function(argc, argv, func, net_lookup_usage); +} -- cgit