Some Light Relief—Using Java to Stuff an Online Poll

The email to me was brief. It just read:

From billg@Central Mon May  4 11:57:41 PDT
Subject: Hank the Angry Dwarf
To: [email protected]

Hey everyone.  If you've got five seconds to spare, go to the following url:
     http://www.pathfinder.com/people/50most/1998/vote/index.html

and vote for:
     Hank the Angry, Drunken Dwarf

This is a huge joke.  We want to try to get Hank way up there on the People Magazine 50 most beautiful people of the year list.  As of 2:00AM, he's already up to number 5!

Well, I can recognize a high priority when I see one. I put down the critical bug fix I was working on, went right to the website, and checked what this was all about.

What this was all about

Every year the celebrity gossip magazine People prints a list of “the 50 most beautiful people in the world,” and this year they were soliciting votes on their website. People had started the ball rolling with nominations for actors like Kate Winslet and Leonardo DiCaprio, who were in the public eye because of their roles in the Titanic movie.

People magazine gave web surfers the opportunity to write in names of people for whom they wanted to vote. A fan of the Howard Stern radio show nominated “Hank the angry, drunken dwarf” for People's list. When Stern heard about Hank's nomination as one of the most beautiful people in the world, he started plugging the candidacy on the radio. A similar phenomenon took place on the Internet, and many people received email like I did. Another write-in stealth candidate widely favored by netizens was flamboyant, blond-haired, veteran pro-wrestler Ric Flair.

Hank is an occasional guest on Stern's syndicated radio program. Hank is a very short 36-year old dude who lives in Boston with his mother and enjoyed his 15 minutes of fame as a belligerent, if diminutive, devotee of beer, tequila, and Pamela Anderson.

The People website soon crashed under the strain of incoming votes for Hank. When the People poll closed, the results were as follows:

230,169 votes

Hank the dwarf

Angry, drunken dwarf and Stern radio guest

17,145 votes

Ric Flair

25-year pro-wrestling performer

14,471 votes

Leonardo DiCaprio

High school dropout

7,057 votes

Gillian Anderson

Actress

5,941 votes

Kate Winslet

High school dropout

Hank Nassif, the angry, drunken dwarf, was officially the most beautiful person in the world, by a margin of more than 10-to-1 over the runner-up! Unhappily, People magazine showed their true colors at this point, ignored the clear mandate from the website, and went ahead with a cover story naming the guy who came in third as the official “most beautiful person in the world” for 1998. What a rip-off.

The Java votebot

There were dark allegations here of automated voting programs, or votebots. I was shocked. But not too shocked to show you how to write a votebot using your new-found Java servlet skills.

First, find any online poll. Lots of sites run them because they are a lot cheaper than having actual meaningful content. Let's pick on, I don't know, say, CNN.com. The goofballs in the media are always running some kind of “scientific” poll in an attempt to seem “with it” and “hip” to the latest trends and “cool slang.” In October 2001, they were running a poll asking, “Is al Qaeda sending coded messages to followers via video statements?” You could answer “yes” or “no.” There wasn't a box for people to respond “This kind of inane question only trivializes serious matters, and distracts attention from the real issues”.

Do a “view source” on a poll web page in your browser to see how they are submitting the results. The part of the HTML page that deals with the poll will probably be a form looking something like this:

<FORM METHOD=POST ACTION="http://poll.cnn.com/poll?1682781"
TARGET="popuppoll">
<INPUT TYPE=HIDDEN NAME="Poll" VALUE="168278">
<!-- Question 1 --><INPUT TYPE=HIDDEN NAME="Question" VALUE="1">
<SPAN class="BoxStory">
Is al Qaeda sending coded messages to followers via video statements?
<BR><BR></SPAN>
</TD> </TR>

<!-- Answer 1 -->
<TR> <TD>
<SPAN class="BoxStory"> Yes </SPAN>
</TD>
<TD align=center><INPUT TYPE=RADIO NAME="Answer168279" VALUE=1>
</TD> </TR> <!-- /end Answer 1 -->

<!-- Answer 2 -->
<TR> <TD>
<SPAN class="BoxStory"> No </SPAN>
</TD>
<TD align=center><INPUT TYPE=RADIO NAME="Answer168279" VALUE=2>
</TD> </TR>

So that tells us this is a simple form which is posted to URL “http://poll.cnn.com/,” the script is called ”poll,” its argument is called ”1682781,” and the name/value posted is ”Answer168279=1” for yes, and "Answer168279=2" for no. There is a hidden attribute giving the question number, too.

It doesn't matter which way you stuff this or any poll; the point is that a news organization needs to decide if it is in the news business or the entertainment business.

Here's the program to do it.

// implements a votebot to stuff Internet polls
import java.io.*;
import java.net.*;
public class votebot {
    public static void main (String args[]) {
        try {
            for (int i=0; i<1000; i++) {
                URL u = new URL("http://poll.cnn.com");
                URLConnection uc = u.openConnection();
                uc.setDoOutput(true);
                OutputStream os = uc.getOutputStream();
                PrintStream ps = new PrintStream(os);
                ps.print("GET /poll?1682781p ");
                ps.print("Question=1&Answer168279=2 ");
                System.out.print(".");
            }
         } catch (Exception ex) {
            System.out.println("Excpn: "+ex.getMessage());
         }
    }
}

If this doesn't work for you, the likeliest reason is the polling site employing electronic countermeasures, such as discarding multiple inputs from one IP address. Or the “poll” may in fact be completely fake and discard all input from anyone at all times. If they are caching IP addresses to prevent multiple votes, then you need to forge your outgoing IP address. There is no way to do that from Java. But if you have a better idea, please send me email!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.24.106