Solved

why i don't receive DHCPDiscover message from server using dongle and why same code give DHCPNac on wifi

Posted on 2015-01-12
3
28 Views
Last Modified: 2016-02-27
I have written a script using perl and i have tested it using two different ways: (1)Using a wifi connection (I have router which is directly connected to server and i am connected to that router). When i run my script on wifi connection, I receive DHCPOffer with IP and when i send request than i receive DHCPNack on that Request. i don't know why ? (2) Using the same code when i connect using a dongle then i even don't receive DHCPDiscover it just kind of hang for about hours and there is no any kind of message from server.

Below is all my code :

use IO::Socket::INET;
use Net::DHCP::Packet;
use Net::DHCP::Constants;
my $result='false';
my $nowtime = localtime(time);
print "\nprint $nowtime\n";
SocketCreation();
if ( $result eq 'true')
{
print "\nTRUE\n";
}
else
{
print "\nFALSE \n";
}
#########Here is the finction definition to SocketCreation ###########
+################
sub SocketCreation()
{
my $br_addr = sockaddr_in( '67', inet_aton('255.255.255.255') );
my $xid     = int( rand(0xFFFFFFFF) );
#my $chaddr  = '00189BF9C1Dp';
my $chaddr = '0016cbb7c882';

my $socket = IO::Socket::INET->new(
    Proto     => 'udp',
    Broadcast => 1,
    LocalPort => '68',
) or die "Can't create socket: $@\n";
print "\n please wait and have patience......:\n";
my $discover_packet = Net::DHCP::Packet->new(
    Xid                           => $xid,
    Chaddr                        => $chaddr,
    Flags                         => 0x8000,
    DHO_DHCP_MESSAGE_TYPE()       => DHCPDISCOVER(),
    DHO_HOST_NAME()               => 'Perrr',
    DHO_VENDOR_CLASS_IDENTIFIER() => 'perlr',
);
 print "/n just a check\n";
$socket->send( $discover_packet->serialize(), 0, $br_addr)
    or die "Error sending:$!\n";

my $buf = '';
print "/n just a check2\n";
$socket->recv( $buf, 1024) or die "recvfrom() failed:$!";
#print STDERR $socket->toString();
my $resp = new Net::DHCP::Packet($buf);
print "Details:\n" . $resp->toString();
$ip_offerto=$resp->yiaddr();
print "\n IP we got from google is : $ip_offerto\n";
$result = ($ip_offerto =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) ? "t
+rue":"false";
print $result;
# create DHCP Packet REQUEST
$request = Net::DHCP::Packet->new(
                      Xid => 0x12345678,
                      Ciaddr => $resp->yiaddr(),
                      DHO_DHCP_MESSAGE_TYPE() => DHCPREQUEST(),
                      DHO_VENDOR_CLASS_IDENTIFIER() => 'ShekharsIPRequ
+est',
                      DHO_DHCP_REQUESTED_ADDRESS() => $resp->yiaddr(),
                      );
print"\nSending REQUEST to server\n";
print $request->toString();
$socket->send($request->serialize(),0,$br_addr)
              or die "Error sending:$!\n";

print "\nWaiting for response from server\n";
$socket->recv($buf, 4096) || die("recv:$!");

print "\nGot response\n";
$resp = new Net::DHCP::Packet($buf);
print STDERR $resp->toString();
close($socket);
}

Actually could some one please give me solution for :

(1) Why it give DHPCNACK when i use WIfi (through another roter) ?
 (2) Why the same code hangs while run through dongle (USB Modem internet device)?
0
Comment
Question by:shekhar SHEKHAWAT
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 62

Accepted Solution

by:
gheist earned 500 total points
ID: 40546065
DHCDISCOVER is sent by client. Server sends dhcpack etc.
0

Featured Post

Is your NGFW recommended by NSS Labs?

Ours is! NSS Labs Next Generation Firewall Test gives the WatchGuard Firebox M4600 a "Recommended" rating! Curious where your NGFW landed on the  Security Value Map? See the map and download the full report today!

Question has a verified solution.

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

Outsource Your Fax Infrastructure to the Cloud (And come out looking like an IT Hero!) Relative to the many demands on today’s IT teams, spending capital, time and resources to maintain physical fax servers and infrastructure is not a high priority.
David Varnum recently wrote up his impressions of PRTG, based on a presentation by my colleague Christian at Tech Field Day at VMworld in Barcelona. Thanks David, for your detailed and honest evaluation!
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

689 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