diff --git a/apiclient/ext/authtools.py b/apiclient/ext/authtools.py
index 41c0767..b1183ab 100644
--- a/apiclient/ext/authtools.py
+++ b/apiclient/ext/authtools.py
@@ -24,6 +24,7 @@
 __all__ = ["run"]
 
 import BaseHTTPServer
+import gflags
 import logging
 import socket
 import sys
@@ -37,6 +38,21 @@
     from cgi import parse_qsl
 
 
+FLAGS = gflags.FLAGS
+
+gflags.DEFINE_boolean('auth_local_webserver', True,
+                     ('Run a local web server to handle redirects during '
+                       'OAuth authorization.'))
+
+gflags.DEFINE_string('auth_host_name', 'localhost',
+                     ('Host name to use when running a local web server to '
+                       'handle redirects during OAuth authorization.'))
+
+gflags.DEFINE_multi_int('auth_host_port', [8080, 8090],
+                     ('Port to use when running a local web server to '
+                       'handle redirects during OAuth authorization.'))
+
+
 class ClientRedirectServer(BaseHTTPServer.HTTPServer):
   """A server to handle OAuth 1.0 redirects back to localhost.
 
@@ -47,7 +63,7 @@
 
 
 class ClientRedirectHandler(BaseHTTPServer.BaseHTTPRequestHandler):
-  """A handler for OAuth 2.0 redirects back to localhost.
+  """A handler for OAuth 1.0 redirects back to localhost.
 
   Waits for a single request and parses the query parameters
   into the servers query_params and then stops serving.
@@ -89,34 +105,24 @@
     RequestError: if step2 of the flow fails.
   Args:
   """
-  parser = OptionParser()
-  parser.add_option("-p", "--no_local_web_server", dest="localhost",
-      action="store_false",
-      default=True,
-      help="Do not run a web server on localhost to handle redirect URIs")
-  parser.add_option("-w", "--local_web_server", dest="localhost",
-      action="store_true",
-      default=True,
-      help="Run a web server on localhost to handle redirect URIs")
 
-  (options, args) = parser.parse_args()
-
-  host_name = 'localhost'
-  port_numbers = [8080, 8090]
-  if options.localhost:
-    server_class = BaseHTTPServer.HTTPServer
-    try:
-      port_number = port_numbers[0]
-      httpd = server_class((host_name, port_number), ClientRedirectHandler)
-    except socket.error:
-      port_number = port_numbers[1]
+  if FLAGS.auth_local_webserver:
+    success = False
+    port_number = 0
+    for port in FLAGS.auth_host_port:
+      port_number = port
       try:
-        httpd = server_class((host_name, port_number), ClientRedirectHandler)
-      except socket.error:
-        options.localhost = False
+        httpd = BaseHTTPServer.HTTPServer((FLAGS.auth_host_name, port),
+            ClientRedirectHandler)
+      except socket.error, e:
+        pass
+      else:
+        success = True
+        break
+    FLAGS.auth_local_webserver = success
 
-  if options.localhost:
-    oauth_callback = 'http://%s:%s/' % (host_name, port_number)
+  if FLAGS.auth_local_webserver:
+    oauth_callback = 'http://%s:%s/' % (FLAGS.auth_host_name, port_number)
   else:
     oauth_callback = 'oob'
   authorize_url = flow.step1_get_authorize_url(oauth_callback)
@@ -124,8 +130,12 @@
   print 'Go to the following link in your browser:'
   print authorize_url
   print
+  if FLAGS.auth_local_webserver:
+    print 'If your browser is on a different machine then exit and re-run this'
+    print 'application with the command-line parameter --noauth_local_webserver.'
+    print
 
-  if options.localhost:
+  if FLAGS.auth_local_webserver:
     httpd.handle_request()
     if 'error' in httpd.query_params:
       sys.exit('Authentication request was rejected.')
