PROnetworks »

Post new topic    Reply to topic
Login to print this topic
Author Message
Weaver
PostPosted: Sat Feb 22, 2003 11:56 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 18 Jun 2002
Posts: 2587
Location: /home/weaver/
Back during the move to the new equipment, does anyone remember when the stat for "Hits during downtime" jumped over from about 3500 to over ten thousand over the course of an hour...

Figured I would fess up.

(I was bored at work.)

-Weaver
 
Back to top
SCJwl
PostPosted: Sat Feb 22, 2003 11:57 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 11 Mar 2002
Posts: 13440
Location: South Carolina
lol LMAO
 
Back to top
kanaloa
John C. Derrick
PostPosted: Sun Feb 23, 2003 12:15 am Reply with quote

Founder
 
 


Joined: 09 Mar 2002
Posts: 43381
Location: Columbia, SC
How in the world? LOL
 
Back to top
Weaver
PostPosted: Sun Feb 23, 2003 12:30 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 18 Jun 2002
Posts: 2587
Location: /home/weaver/
Let's just say the F5 key doesn't work on my keyboard at work anymore...

I am kidding. I would never refresh a page 7000 times like that. If I tell you how I did it...you may not think it is so funny anymore...you may find out that I am a real dork, and put almost a half hour into figuring out how to do it.

I actually had to learn a new "language" to do it (Bash scripting).

Let me know if you want me to tell you. It's not that difficult.

-Weaver
 
Back to top
lilwip
PostPosted: Sun Feb 23, 2003 12:53 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 08 Aug 2002
Posts: 2790
Location: Independence, Missouri
LMAO Weaver, Good thing the site wasn't up... Nice little DOS attack... hahaha

How hard was bash scripting to learn. I am still learning the basics of linux, but eventually hope to have it all figured out...
 
Back to top
Weaver
PostPosted: Sun Feb 23, 2003 1:19 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 18 Jun 2002
Posts: 2587
Location: /home/weaver/
Bash scripting was not too bad. I shouldn't talk, I just learned the basics of it in about 10 minutes. If you have experience with other programming languages, you will be both better off and confused. The programming semantics help, but the syntax of a bash script is just plain wicked. Loops are just plain weird, but as I later learned, in this sort of scripting language, it is better done that way. This isn't C++, it is a shell scripting language. You can learn the basics in 10 minutes or so, then experiment for a while getting the darn things to execute properly.

My script was pretty simple, even though it took me 10 minutes to write. I used a little program called Netcat, netcat (nc) is a TCP/IP swiss army knife. Believe me, it lives up to that verbage.

I started off by looking at the source code to page that was displayed. There wasn't really much there. I started making simple GET requests for the page from a command line. This did not increment the counter at all. I went back to the source and took a look at one more thing...

Note: A GET request is part of the HTTP protocol, it the method used to request resources such as HTML and Images.

Code:
<img src=http://counter.digits.com/wc/-d/4/MovingPROneT>


So I made a GET request for the image "MovingPROneT" from the command line and then looked at the page, the counter jumped up two. One for the get request from command line, and one for me refreshing the page. I figured I would try it a couple more times just to be sure. Sure enough, that was it. Now I just had to write a script to make a bunch of GET requests for that image. This is where the Bash scripting came in.

Well, here is the script, any advanced Bash scripters would probably rip me a new one. But hey, I am noob when it comes to bash scripting, so chill.

Code:

#!/bin/bash

count=1000
i=0

while [ "$i" -lt "$count" ]
  do
  echo -e "GET /wc/-d/4/MovingPROneT HTTP/1.0 \n\n" | nc counter.digits.com 80
  let i+=1
  done

exit 0


That's it.

Let's go through it a step at a time.

Code:
#!/bin/bash


This just tells the shell (Bash) that when executing this, make sure to use bash. There are other types of scripting, such as C Shell (csh) among others.

Code:
count=1000
i=0


This sets up our two variables, "count" and "i". I could have named them whatever I want. "count" is basically how many times the image will be requested. "i" is how many times the site has been requested. More on this later.

Code:
while [ "$i" -lt "$count" ]


While "i" is less than "count"

Code:
do
  echo -e "GET /wc/-d/4/MovingPROneT HTTP/1.0 \n\n" | nc counter.digits.com 80
  let i+=1
  done


Do the following: Open a connection (using netcat) to counter.digits.com on port 80 (The HTTP port) and request (GET) the resource "/wc/-d/4/MovingPROneT". When you are done doing that, increment "i" by one and start the loop again.

Code:
exit 0


Exit with error code 0 (No errors).

That was it, hopefully I only confused 75 percent or so. I then ran the script a couple of times, each time it would make a thousand requests for that image, one at a time of course, thus incrementing the counter.

-Weaver
 
Back to top
lilwip
PostPosted: Sun Feb 23, 2003 1:59 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 08 Aug 2002
Posts: 2790
Location: Independence, Missouri
ROCK ON.... That actually doesn't look too bad at all... it is real similar to basic...

Have you seen this evolution of a programmer?

High School/Jr.High
Code:
10 PRINT "HELLO WORLD"
20 END


First year in College
Code:
program Hello(input, output)
  begin
    writeln('Hello World')
  end.


Senior year in College
Code:
(defun hello
  (print
     (cons 'Hello (list 'World))))


New professional
Code:
 #include <stdio.h>
 void main(void)
{
  char *message[] = {"Hello ", "World"};
  int i;
    for(i = 0; i < 2; ++i)
    printf("%s", message[i]);
  printf("\n");
}


Seasoned professional
Code:
#include <iostream.h>
 #include <string.h>
 
class string
{
private:
  int size;
  char *ptr;
  public:
  string() : size(0), ptr(new char('\0')) {}
 
  string(const string &s) : size(s.size)
  {
    ptr = new char[size + 1];
    strcpy(ptr, s.ptr);
  }
 
   ~string()
  {
    delete [] ptr;
   }

  friend ostream &operator <<(ostream &, const string &);
  string &operator=(const char *);
 };
 
 ostream &operator<<(ostream &stream, const string &s)
{
  return(stream << s.ptr);
}

   string &string::operator=(const char *chrs)
{
  if (this != &chrs)
  {
    delete [] ptr;
    size = strlen(chrs);
    ptr = new char[size + 1];
    strcpy(ptr, chrs);
  }
  return(*this);
}
 
int main()
{
  string str;
    str = "Hello World";
  cout << str << endl;
 
  return(0);
}


Master Programmer
Code:
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
    // bring in the master library
    importlib("actimp.tlb");
    importlib("actexp.tlb");
 
     // bring in my interfaces
     #include "pshlo.idl"
 
    [
    uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
     ]
    cotype THello
 {
   interface IHello;
   interface IPersistFile;
  };
};
 
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
 {
 
    // some code related header files
    importheader(<windows.h>);
    importheader(<ole2.h>);
    importheader(<except.hxx>);
    importheader("pshlo.h");
    importheader("shlo.hxx");
    importheader("mycls.hxx");

    // needed typelibs
    importlib("actimp.tlb");
    importlib("actexp.tlb");
    importlib("thlo.tlb");
 
    [
     uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
     aggregatable
    ]
     coclass CHello
 {
  cotype THello;
 };
};
 
#include "ipfix.hxx"

extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
    IPFIX(CLSID_CHello);

    CHello(IUnknown *pUnk);
    ~CHello();

     HRESULT  __stdcall PrintSz(LPWSTR pwszString);
 
private:
    static int cObjRef;
};
 
#include <windows.h>
#include <ole2.h>
#include <stdio.h>
#include <stdlib.h>
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

int CHello::cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
    cObjRef++;
    return;
}
 
HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
{
   printf("%ws\n", pwszString);
   return(ResultFromScode(S_OK));
}
 
CHello::~CHello(void)
{
 
// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
    PulseEvent(hEvent);

return;
}
 
#include <windows.h>
#include <ole2.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
 
// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
    REGCLS_MULTIPLEUSE, &dwRegistration);
 
// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);
 
// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();
 
// Tell OLE we are going away.
CoUninitialize();
 
return(0);
}
 
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
 
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820
*/
    0x2573F891,
    0xCFEE,
    0x101A,
    { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
 
UUID LIBID_CHelloLib = { /*
2573F890-CFEE-101A-9A9F-00AA00342820 */
    0x2573F890,
    0xCFEE,
    0x101A,
    { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
 
#include <windows.h>
#include <ole2.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT  hRslt;
IHello        *pHello;
ULONG  ulCnt;
IMoniker * pmk;
WCHAR  wcsT[_MAX_PATH];
WCHAR  wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
    mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
    wcsupr(wcsPath);
    }
else {
    fprintf(stderr, "Object path must be specified\n");
    return(1);
    }

// get print string
if(argc > 2)
    mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
    wcscpy(wcsT, L"Hello World");

printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
if(SUCCEEDED(hRslt)) {
 
    hRslt = CreateFileMoniker(wcsPath, &pmk);
    if(SUCCEEDED(hRslt))
 hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
 
    if(SUCCEEDED(hRslt)) {
 
 // print a string out
 pHello->PrintSz(wcsT);
 
 Sleep(2000);
 ulCnt = pHello->Release();
 }
    else
 printf("Failure to connect, status: %lx", hRslt);

    // Tell OLE we are going away.
    CoUninitialize();
    }
 
return(0);
}


Apprentice Hacker
Code:
#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
  while(defined($arg=shift(@ARGV))) {
    $outfilename = $arg;
    open(FILE, ">" . $outfilename) || die "Can't write $arg:
$!\n";
    print (FILE $msg);
    close(FILE) || die "Can't close $arg: $!\n";
  }
} else {
  print ($msg);
}
1;


Experienced Hacker
Code:
#include <stdio.h>
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}


Seasoned Hacker
Code:
% cc -o a.out ~/src/misc/hw/hw.c
% a.out


Guru Hacker
Code:
% cat
Hello, world.
^D


New Manager
Code:
10 PRINT "HELLO WORLD"
20 END


Middle Manager
Code:
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello,
world."?
I need it by tomorrow.
^D


Senior Manager
Code:
% zmail jim
I need a "Hello, world." program by this afternoon.


Chief Executive
Code:
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% d*mn!
!: Event unrecognized
% logout
 
Back to top
Weaver
PostPosted: Sun Feb 23, 2003 2:18 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 18 Jun 2002
Posts: 2587
Location: /home/weaver/
LMAO!

-Weaver
 
Back to top
kanaloa
John C. Derrick
PostPosted: Sun Feb 23, 2003 2:59 pm Reply with quote

Founder
 
 


Joined: 09 Mar 2002
Posts: 43381
Location: Columbia, SC
Can we get one of these for say uhhh Top Sites?

LOL
 
Back to top
Xstream
PostPosted: Sun Feb 23, 2003 10:56 pm Reply with quote

Respected Member
of PROnetworks
 
 


Joined: 14 Mar 2002
Posts: 12702
Location: USA
smilenod
 
Back to top
Back to top
Index >> Community Lounge >> I confess, it was me...

Page 1 of 1

Post new topic   Reply to topic


Tired of the Ads? Registered users have 80% less adverts.