IDGLabs.COM - tips, tools and resource

Knowledge Sharing - Want to participate in the discussion?

’s poor link: query operator has taken a huge beating from the community for the past few years. The query operator’s reputation has been dragged through the mud so much that most people now use ! for link research (which is equivalent to asking Monaco to handle your national intelligence initiatives).

(more…)

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • 0 Comments
  • Filed under: SEO
  • Auction Ads have been in the lime light for sometime since March 2007, Recently MediaWhiz acquired the company fully from Jeremy Schoemaker for an undisclosed fee. Auction Ads is an advertising widget that serves relevant eBay auctions based on tags placed by the publisher.

    As a publisher with Auction Ads, you are paid 100% of eBay affiliate fees. Auction Ads had more than 5,000 publisher within a week and have more than 20,000 publishers registered in their network.
    auction_ads_logo
    After giving a brief introduction about Auction Ads, I think it’s really an idiot prove system to use, simple and effective! New Publishers who are looking forward to make money online can now breath on Auction Ads.

    The All new 2.0 Design For Auction Ads
    If you were a long supporter with Auction Ads and have seen their makeover through the months from the ads that were with poor resolution, distorted and stretchy looking advertising items to the all new refreshing 2.0 look, which will allow better images shown so that you can attract more clicks on your site, given the staff a few more weeks before everything is up!

    auction_ads_web2.0_new_look

    Worry no more as you will get double the performance than before!
    AuctionAds was very confident to say that they have “doubled the size of our infrastructure and optimized it to ensure near 100% uptime of ad serving“. This acts as an assurances to all of us that the problems we faced previous would be eliminated by their dedicated .

    Why should i sign up with Auction Ads?
    Many people will think Auction Ads President Patrick Gavin paid me to review them, but all i can say is they would not be looking at me because i am not a big earner with them, Maybe if i am John Chow, i might get few hundred dollars for this review or maybe not?
    If my served me well, i remembered giving them a drop when they were having problems with their servers and now i see the prospect of this program coming back with its assurances with Media Whiz which i see as a way to make more money online, don’t tell me this is not what you wanted “make more money“!

    Managing my Auction Ads Account
    A little run through on how to actually setup your account which would help speed up the amount of time used to further optimize your ads. Its so simple there is no need to use multiple screenshots for elaborations.

    Click on “Campaigns” and start to create a campaign to monitor your click results and impressions made. You can have multiple campaigns going on at the same time, there should be a limit but i have yet to create to that amount so i can’t tell you the limits.

    After creating your campaign, lets give it a name “Money“. Click on “Get ” to setup your ads. There are 3 columns which you need to fill up to create your very first auction codes.

    • Ad : Place your within this box and to breakup leave a “,” in between every word created.
    • Ad Campaign: You have created “Money” as your campaign, choose it so that you can track the stats.
    • Ad Type: Though after the new implementation with the design, the older design still is around and is still being offered as a choice, why is this so? Let me explain to you later.

    Who do i choose? The New or stick to the old ads?
    Auction Ads retained the services for the older banners though it brings much distorted picture but the older banners had features to customize compared to the new ones. It really depends on individual pick.

    The High and Low of Older Banners

    High

    1. You have a wide choice of ads sizes that you can chose to fit your site.
    2. You have the ability to customize your background,descriptions and links colour.
    3. You will be able to blend your ads better on your site.

    Low

    1. The Ads are showing poor quality pictures which could affect your earnings, better images are require to pull of a convincing purchase.

    The High and Low of New Banners

    High

    1. It gives a much attractive and sleek look which could attract more clicks.
    2. There is a cool range of colours to choose for your ads.

    Low

    1. There is a limited number of ads style i can choice which is the vertical or horizontal style followed by a maximum of 3 ads shown.

    You have setup your first hand and have placed it in your blog, but realised most of your ads are not rotating and also you made a discovery that your ads are always having many bids at $0.01, how do you increase them and set a minimum amount to improve your earnings?

    Optimize your Auction Ads!
    All these were found on Auction Ads Blog which is broken into parts during their updates, I decided to compile it to look good under one post. Here i go!

    New Window Open Function
    This feature does not look new but it allows your ads to open in another tab or window .In your own it will look like this ” auctionads_option=”n”; ” . This means your ads will open in another or tab.

    Rotate your Automatically in one
    Bored and tired of seeing same ads in every pages, then you can use this function which allows your within to rotate by itself. While Keying in your to “Ad ” add “;” in between every . The reflected should be like this

    auctionads_ad_kw = “ 1; 2; 3; 4″;

    Optimizing auction prices to make more money
    This can be trick, it can decrease the number of clicks on one hand but on the other hand it can help you earn more with just 1 single purchase. “minprice:___ and maxprice:___“. The will look like this:

    auctionads_ad_kw = “Xbox 360 minprice:50″;” - will generate all relevant items above $50

    auctionads_ad_kw = “X box 360 maxprice:50″;” - will generate all relevant items under $50

    Using the best way to convert auctions to cash!
    Go back to your account under “Url converter“. Add in a ebay item’s url that you would want to promote or let your readers know about how hot that item is. For example,Brand New Apple iPhone 8GB is up for grab at only $728, would you not want to own a iphone now?

    Benefits are way above all and you can outdo your current PPC earnings
    Since you take 100% affiliate earnings as a publisher, and you will see that PPC clicks are seriously pathetic, maybe a maxmium of $2/day with 1000/day unless your site brings in tons of , otherwise giving Auction Ads a try would not mean any harm at all!

    , and Widgets readily available

    *Too bad for Bloggers, we don’t have widget readily available for auctions ads, maybe someone would create one one day! Do contact me and i will have you added in this and contact Auction ads, cause they will give T-shirt to the one who creates or widgets for them!

    Give AuctionAds a try, its one of the best program available and signup now to start making money online! Do you have something to share, do share with us a tips that you have used before or comments on this program?

    source:www.etienneteo.com/2007/08/make-money-online-with-auction-ads-new.html

    Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

    SSH Tunneling In Your Application

    Introduction

    This article is dedicated to the task of securing client- connection using functionality provided by the Secure Shell (SSH) protocol. To be exact, the SSH tunneling concept is utilized. We will review the steps needed to build secure client and implement a sample one ourselves.

    is not the only kind of data that can be tunneled by the Secure Shell. SSH can be used to secure any application-layer TCP-based protocol, such as HTTP, SMTP and POP3. If your application needs to secure such a protocol by tunneling it through a protected SSH connection, this article will be useful to you.

    Background

    Let’s imagine that we are an enterprise application that needs to send requests to a number of SQL servers all over the world and get responses from them (let’s imagine that it’s a super-powerful bank system that stores information about millions of accounts).

    All the data between the application and SQL servers are transferred via the “as is”. As most protocols used by SQL servers do not provide data and confidentiality (and those that do, do it in a quite nontransparent way), all the transferred requests and responses may (and be sure, they will!) become visible to a passive adversary. An active adversary can cause much more serious problems - he can alter the data and no one will detect it.

    SSH (Secure Shell) is a protocol that may help in solving this problem. One of its outstanding features is its ability to tunnel different types of connections through a single, confident and -protected connection.

    Now you do not have to worry about securing the data transferred over the - SSH will handle this for you. In particular, SSH will take care of the following aspects:

    Strong data encryption according to the latest industry-standard algorithms (AES, Twofish)
    Authentication of both client and computers
    Data protection
    Stability with regard to different kinds of network attacks
    Compression of the data being tunneled
    Complete independence of the operating system and network specifics

    Tunneling (or forwarding) works in the following way:

    SSH client opens a listening port on some local network interface and tells the SSH that he wishes to forward all connections accepted on this port to some remote host.

    When another connection is accepted on the listening port, the SSH client informs the SSH about this fact and they together establish a logical tunnel for it. At the same time, the SSH establishes a new TCP connection to the remote host agreed upon in step 1.

    The SSH client encrypts all the data it receives from the accepted connection and sends it to the SSH . The SSH decrypts the data received from the SSH client and sends it to the remote host.

    Please note, that the SSH client acts as a TCP for the connections it accepts, and the SSH acts as a TCP client for the connections it establishes to the remote host.

    A single SSH connection can tunnel as many application layer connections as needed. This means that you can defend your by moving all the listening ports (e.g., database and application ports) to a local network, leaving only the SSH port open. It is much easier to take care of a single port, rather than a dozen different listening ports.

    Into the Fire
    Let’s develop a small application that illustrates the use of SSH forwarding capabilities. We will consider an important task of securing a connection between a client application and a . Imagine that we need to get information from the database , which is located a thousand miles away from us, in a secure way.

    SecureMySQLClient is the application we are planning to implement. It includes the following :

    SSH client-side with forwarding capabilities
    client-side
    User interface for configuring application settings and displaying query results.

    The SSH runs in a remote network and is visible from the . The database () runs in the same network as the SSH and may not be visible from the .

    The of performing secure data exchange between SecureMySQLClient and the Database goes as follows:

    The SSH client negotiates a secure connection to the SSH and establishes forwarding from some local port to the remote .
    The client connects to the listening port opened by the SSH client .
    The SSH client and set up a logical tunnel for the accepted connection.
    The client sends SELECT to the port opened by the SSH client , which encrypts it and sends it to the SSH . The SSH decrypts the request and sends it to the .
    The SSH receives a response from the , encrypts it and sends it back to the SSH client, which decrypts it and passes it to the client .

    Looks too complex? Implementing this is easier than you think.So, let’s go and do it.

    We will need the following products installed on the before creating the application:

    Visual Studio .NET 2003, 2005 or 2008.
    EldoS SecureBlackbox (.NET edition). Can be downloaded from
    http://www.eldos.com/sbbdev/download.php.
    .NET Connector. Can be downloaded from
    http://www.mysql.com/products/connector/net/.

    Let’s now open Visual Studio .NET (we will use the 2005 version) and try to build such an application from scratch.

    After the GUI design has been finished, we can go on with the business logic itself. First, references to the following assemblies to our project:

    SecureBlackbox
    SecureBlackbox.PKI (only in SecureBlackbox 5. SecureBlackbox 6 doesn’t have this assembly)
    SecureBlackbox.SSHClient
    SecureBlackbox.SSHCommon
    .Data

    SSHForwarding notifies us about certain situations via its , so we need to create handlers for some of them:

    OnAuthenticationSuccess - Is fired when the client authentication has been completed.

    OnAuthenticationFailed - Is fired if the client was unable to authenticate using particular authentication method. In general, this does not mean that the authentication completely failed – the client may try several authentication methods consequently and one of them may succeed.

    OnError - Is fired if some protocol occurs during the session. Usually this leads to a connection closure. The exact can be detected via the passed to it.

    OnKeyValidate - Is used to pass the received key to the application. Please note that incorrect handling of this event may result in a serious breach. The handler of this event should verify that the passed key corresponds to the remote (and warn the user if it does not). If the key is valid, the handler should set the Validate parameter to true. The sample does not perform key checkup for the sake of simplicity.

    OnOpen - Is fired when the SSH connection is and the component is ready to tunnel data. We will use the handler of this event to kick the client component.

    OnClose - Is fired when the SSH connection is .

    OnConnectionOpen - Is fired when a new tunnel is created. The corresponding tunneled connection object is passed as parameter.

    OnConnectionClose - Is fired when an existing tunnel is .

    Implementing two core methods, SetupSSHConnection() and RunQuery(). The first one initializes the SSHForwarding object and establishes an SSH session to the remote by calling its Open() method, and the second one sends the query to the .

    The of the SetupSSHConnection() method is pretty simple:

    private void SetupSSHConnection()

    {

    // Specifying address and port of SSH

    Forwarding.Address = tbSSHAddress.Text;

    Forwarding.Port = Convert.ToInt32(tbSSHPort.Text);

    // Setting credentials for authentication on SSH

    Forwarding.Username = tbUsername.Text;

    Forwarding.Password = tbPassword.Text;

    // Specifying network interface and port number to be opened locally

    Forwarding.ForwardedHost = “”;

    Forwarding.ForwardedPort = Convert.ToInt32(tbFwdPort.Text);

    // Specifying destination host where the should forward the data to.

    // Please note, that the destination should be specified according to

    // SSH servers point of view. E.g., 127.0.0.1 will stand for

    // SSH servers localhost, not SSH clients one.

    Forwarding.DestHost = tbDBAddress.Text;

    Forwarding.DestPort = Convert.ToInt32(tbDBPort.Text);

    // Opening SSH connection

    Forwarding.Open();

    }

    A bit more complex is the of the RunQuery() method (to be exact, the of RunQueryThreadFunc() method, which is invoked in a separate thread by the RunQuery() method):

    private void RunQueryThreadFunc()

    {

    MySqlConnection MySQLConnection = new MySqlConnection();

    // forming connection string

    string connString = “database=” + tbDBName.Text + “;Connect =30;user id=” + tbDBUsername.Text + “; pwd=” + tbDBPassword.Text + “;”;

    if (cbUseTunnelling.Checked)

    {

    // specifying local destination if forwarding is enabled

    connString = connString + “=127.0.0.1; port=” + tbFwdPort.Text;

    }

    else

    {

    // specifying real location if forwarding is not used

    connString = connString + “=” + tbDBAddress.Text + “; port=” + tbDBPort.Text;

    }

    MySQLConnection.ConnectionString = connString;

    try

    {

    // opening connection

    MySqlCommand cmd = new MySqlCommand(tbQuery.Text, MySQLConnection);

    Log(”Connecting to …”);

    MySQLConnection.Open();

    Log(”Connection to . Version: ” + MySQLConnection.ServerVersion + “.”);

    // reading query results

    MySqlDataReader reader = cmd.ExecuteReader();

    try

    {

    for (int i = 0; i < reader.FieldCount; i++)

    {

    AddQueryColumn(reader.GetName(i));

    }

    while (reader.Read())

    {

    string[] values = new string[reader.FieldCount];

    for (int i = 0; i < reader.FieldCount; i++)

    {

    values[i] = reader.GetString(i);

    }

    AddQueryValues(values);

    }

    }

    finally

    {

    // both and SSH connections

    Log(” connection”);

    reader.Close();

    MySQLConnection.Close();

    Forwarding.Close();

    }

    }

    catch (Exception ex)

    {

    Log(” connection failed (” + ex.Message + “)”);

    }

    }

    And, that’s all But there is one more thing I need to draw your attention to. As both SSH and protocols run in separate threads and access GUI controls from those threads, we need to handle the GUI access in a special way to prevent a cross-thread problems. I will illustrate this with the example of the Log() method:

    delegate void LogFunc(string S);

    private void Log(string S)

    {

    if (lvLog.InvokeRequired)

    {

    LogFunc d = new LogFunc(Log);

    Invoke(d, new object[] { S });

    }

    else

    {

    ListViewItem item = new ListViewItem();

    item.Text = DateTime.Now.ToShortTimeString();

    item.SubItems.Add(S);

    lvLog.Items.Add(item);

    }

    }

    Finally, the application is finished, and we may try it in work. So clicking F5 and specifying the following settings in the text fields of the application form:

    SSH location, username and password used to authenticate to it.
    Database address, port, username, password, database name and query. Remember that database address should be specified as it is visible from the SSH .
    Turning on the “Use tunneling” checkbox.

    Now click the Start button and for the query results. If all the parameters have been specified correctly, we should get something like this:

    Features and requirements

    SSH protocol provides (and SecureBlackbox implements) the following features:

    Strong data encryption using AES, Twofish, Triple DES, Serpent and many other symmetric algorithms with key lengths up to 256 bits
    Client authentication using one or multiple authentication types (password-based, public key-based, X.509 certificate-based, interactive challenge-response authentication)
    authentication
    Strong key exchange based on DH or RSA public key algorithms
    Data protection
    Compression of tunneled data
    Multiplexing several tunneled connections through a single SSH connection

    SecureBlackbox provides the following functionality as well:

    Comprehensive standards-compliant implementation of the SSH protocol (both client and sides)
    Support for cryptographic tokens as for keys and certificates
    system certificate stores support
    Professional and fast customer support

    SecureBlackbox is available in .NET, VCL and ActiveX editions. This means that you can use the in projects implemented in C#, VB.NET, Object Pascal (Delphi and Kylix), FreePascal, VB6 and C++ languages.

    SecureBlackbox (.NET edition) is available for .NET 1.1, 2.0, 3.0 and 3.5, and .NET Compact .

    About The Author

    Tom Davidge is a senior SFTP NET Compnents developer that has proven experience in .net coding.

    source: www.articlecity.com

    Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • Comments Off
  • Filed under: Command Line, Hacks
  • Network Statistics -netstat

    displays the  contents  of  various  network-related  data structures in  depending on the options selected.

    Syntax :

      </s>

    multiple options can be given at one time.

    Options

     -a - displays the state of all sockets.
     -r - shows the system routing tables
     -i - gives statistics on a per-interface basis.
    -m - displays information from the network buffers. On Solaris, this shows statistics
             forSTREAMS
     -p [proto] - retrieves statistics for the specified protocol
      -s - shows per-protocol statistics. (some implementations allow -ss to remove fileds with a value of 0 (zero) from the display.)
     -D - display the status of DHCP configured interfaces.
    -n do not lookup hostnames, display only IP addresses.
    -d (with -i) displays dropped packets per interface.
    -I [interface] retrieve information about only the specified interface.
    -v be verbose

    interval  -   number for continuous display of statictics.

    Example :

    $ -rn

    Routing Table: IPv4
      Destination           Gateway               Flags  Ref   Use   Interface
    ——————– ——————– —– —– —— ———
    192.168.1.0         192.168.1.11           U        1   1444      le0
    224.0.0.0             192.168.1.11           U        1   0            le0
    default                  192.168.1.1           UG       1   68276 
    127.0.0.1             127.0.0.1               UH       1  10497     lo0

    This shows the output on a Solaris machine who’s IP address is 192.168.1.11 with a default router at 192.168.1.1

    Results and Solutions:

    A.) Network availability

    The command as above is mostly useful in troubleshooting network accessibility issues . When  outside network is not accessible from a machine check the following

    1. if the default router ip  address is correct

    2.  you can it from your machine.

    3. If router address is incorrect  it can be changed  with add  commnad . See man route  for more info .

    command examples:
    $ add default <hostname>
    $ add 192.0.2.32  <gateway_name>

    If the router address is correct but still you can’t it  there may be some  network cable /hub/switch problem  and you have to try and eliminate the faulty component .

     

    B.) Network Response

    $ netstat -i

    Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
    lo0 8232 loopback localhost 77814 0 77814 0 0 0
    hme0 1500 server1 server1 10658566 3 4832511 0 279257 0

    This is used to diagnose the network problems when  the connectivity is there but  it is slow in response .

    Values to look at:

    The above values will give information to workout

    i.  Network collision rate as follows :

    Network collision rate = Output collision counts / Output packets

     Network-wide collision rate greater than 10 percent  will indicate

    •  Overloaded network,
    •  Poorly configured network,
    •   problems. 

    ii.  packet rate as follows :

      Packet Rate = Ierrs / Ipkts.

    If the rate is high (over 0.25 percent), the host is dropping packets. Hub/switch cables needs to be checked for potential problems.

    C.  Network  &  TCP Cconnection state
     gives important   information about network  and tcp state . This is very useful in
    finding out the open ,  and  waiting network tcp connection .
    Network states returned by   are following :
                        —-  .  The   is  not  being used.
         LISTEN                 —-  Listening for incoming connections.
                    —-  Actively trying to  establish  connection.
         SYN_RECEIVED  —- Initial synchronization of the connection under way.
              —-  Connection has been .
         CLOSE_WAIT      —-  Remote shut down; waiting  for  the to close.
         FIN_WAIT_1        —-   ; shutting  down  connection.
                      —-  ,   then   remote   shutdown; awaiting acknowledgement.
                   —-   Remote  shut  down,  then   ;awaiting acknowledgement.
         FIN_WAIT_2        —-  ; waiting for shutdown from remote.
         TIME_WAIT         —-  after close for  remote  shutdown retransmission.
         
     
    Example:
     # -a

     

    Local Address Remote Address Swind   Send-Q Rwind Recv-Q State 
    *.* *.* 0 0 24576 0 IDLE
    *.22 *.* 0 0 24576 0 LISTEN
    *.22 *.* 0 0 24576 0 LISTEN
    *.* *.* 0 0 24576 0 IDLE
    *.32771 *.* 0 0 24576 0 LISTEN
    *.4045 *.* 0 0 24576 0 LISTEN
    *.25 *.* 0 0 24576 0 LISTEN
    *.5987 *.* 0 0 24576 0 LISTEN
    *.898 *.* 0 0 24576 0 LISTEN
    *.32772 *.* 0 0 24576 0 LISTEN
    *.32775 *.* 0 0 24576 0 LISTEN
    *.32776 *.* 0 0 24576 0 LISTEN
    *.* *.* 0 0 24576 0 IDLE
    192.168.1.184.22 192.168.1.186.50457 41992 0 24616 0
    192.168.1.184.22 192.168.1.186.56806 38912 0 24616 0
    192.168.1.184.22 192.168.1.183.58672 18048 0 24616 0
    if  you see a lots of connections in FIN_WAIT state  tcp/ip parameters   have to be tuned  because the
    connections  are not being and they gets accumulating . After some time system may run out of
    resource . TCP parameter can be tuned to define a time out so that connections can be released and
    used by new connection.  
    Tags: , , , , , , , , , , ,
  • 0 Comments
  • Filed under: Solaris