Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

help needed w Windows batch script

Posted on 2016-07-16
10
Medium Priority
?
56 Views
Last Modified: 2016-07-18
I have in mind to write the following Windows batch script to poll entire range of 254 IP subnet to see
if the IP has web server listening on it;  help me fix the codes below to get it working:

echo off
do while reading c:\temp\wgetoutput.txt
wget -S <IP_from_IPlist.txt>  2> c:\temp\wgetoutput.txt
if %errorlevel% == 0 then find "Server:" >> c:\temp\websvrtype.txt
  else
echo "not a webserver" >> >> c:\temp\websvrtype.txt
endif



I have the wget tool & it's tested working.
The error output  (ie 2> )  of  'wget -S IP_addr' is as below:

If successfully connected to a web server: (ie errorlevel is 0)
=================================
Connecting to 10.1.10.71:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.0 301 Redirect
  Server: GoAhead-Webs
  Date: Fri Jan 14 18:41:53 2106
  Pragma: no-cache
  Cache-Control: no-cache
  Content-Type: text/html
  Location: index.asp

If unsuccessfully connected to a web server: (errorlevel is usually 1 but can be high value if IP invalid; so all non-zero values)
====================================
           => `index.html.1'
Connecting to 10.1.10.1:80... failed: Connection refused.
0
Comment
Question by:sunhux
  • 3
  • 2
  • 2
  • +2
10 Comments
 

Author Comment

by:sunhux
ID: 41714741
correction:

if %errorlevel% == 0 then find "Server:" >> c:\temp\websvrtype.txt
    should read
if %errorlevel% == 0 then find "Server:" c:\temp\wgetoutput.txt >> c:\temp\websvrtype.txt
0
 
LVL 84

Assisted Solution

by:Dave Baldwin
Dave Baldwin earned 280 total points
ID: 41714751
You might consider one of the programs that already exist like AngyIP scanner.  http://angryip.org/
0
 
LVL 84

Expert Comment

by:Dave Baldwin
ID: 41714754
Here http://www.advanced-ip-scanner.com/ is another that doesn't require JAVA.
0
 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

 
LVL 56

Assisted Solution

by:Joe Winograd, EE MVE 2015&2016
Joe Winograd, EE MVE 2015&2016 earned 400 total points
ID: 41714771
Hi sunhux,
I can't help you with that batch file, but along the lines of Dave's posts, this EE article provides a solution that may interest you:
Test IP Addresses with PING

Regards, Joe
0
 
LVL 99

Assisted Solution

by:John Hurst
John Hurst earned 200 total points
ID: 41714776
I also use Advanced IP Scanner. It works well, does what you want and can save the results to a file.
0
 
LVL 56

Assisted Solution

by:Joe Winograd, EE MVE 2015&2016
Joe Winograd, EE MVE 2015&2016 earned 400 total points
ID: 41714782
sunhux,
One other thing. If you don't want to install AutoHotkey and prefer to download an executable (an EXE file), such as with the two links that Dave provided, then I'll be happy to compile it for you into a stand-alone executable (an EXE file that requires no installation — just run it), as mentioned in my PING article. Regards, Joe
0
 
LVL 71

Accepted Solution

by:
Qlemo earned 1120 total points
ID: 41715706
As you seem to get a list of web server types, too, none of the tools suggested will help you IMHO. I've hardcoded the IP subnet 192.168.0.0 below. The script will go thru all 254 addresses. Also, your suggested output does not show the IP address, which makes the resulting file rather useless - I've added that part, too.
@echo off
setlocal EnableDelayedExpansion
set net=192.168.0
del c:\temp\websvrtype.txt 2>nul
for /L %%A in (1,1,254) do (
  set srv=%net%.%%A
  set type=
  for /F "tokens=1* delims=: " %%R in ('wget -S %net%.%%A  2^>^&1 ^| find "Server:"') do set type=%%S
  if "!type!" == "" (
    echo !srv!: not a web server 
  ) else (
    echo !srv!: !type!
  )
) >> c:\temp\websvrtype.txt

Open in new window

0
 

Author Comment

by:sunhux
ID: 41715755
excellent, I'll test it out tomorrow
0
 

Author Comment

by:sunhux
ID: 41717038
I just made one minor change so that it doesn't take very long when wget polls
IP addresses that are not in use or not responding :

('c:\wget\wget -S -t 1 --timeout=2 %net%.%%A  2^>^&1 ^| find "Server:"')

ie
-t 1 : number of tries is 1
--timeout=2 : timeout after 2 secs

& it worked marvelously without triggering IPS/IDS/firewall events in our Arcsight
0
 
LVL 71

Expert Comment

by:Qlemo
ID: 41717069
Good move to lessen the timeout and retries. Also, with this (non)speed it doesn't surprise me no IDS is complaining - it is just too slow to do so. Anyway, usually the target IDS is the one checking for attacks, not your local one.
0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Utilizing an array to gracefully append to a list of EmailAddresses
Active Directory replication delay is the cause to many problems.  Here is a super easy script to force Active Directory replication to all sites with by using an elevated PowerShell command prompt, and a tool to verify your changes.
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

877 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question