  NJBlackBerry
join:2003-01-03 Bridgewater, NJ | reply to murcury2 Re: docsdiag help
I use the following command from behind a router...
java -cp docsdiag.jar docsdiag -cmip 10.x.x.x -cmmac 00204xxxxx
Use (obviously) the 10.x IP address of your cable modem and the appropriate cable modem MAC address.
|
|
  n2jtx
join:2001-01-13 Glen Head, NY
·Optimum Online
| You definitely need to use your modems 10.x.x.x address when behind a router. Figuring it out though can be a pain. Probably the easiest thing to do is to temporarily remove the router and use DOCSDIAG to dump out all of parameters to a file using -vv. Then search the file for the string .iso.3.6.1.2.1.4.20.1.1 (this is the DOCSIS SNMP ipAdEntAddr value). Right after that string will be four additional numbers, the first being 10, that will be your 10.x.x.x address. -- I support the right to keep and arm bears. |
|
  StreetSpirit Premium join:2002-08-13 Roslyn, NY
·Optimum Online
·Verizon Online DSL
| Most customers can also see their assigned 10.x.x.x number by doing a tracert. The first (or second for those with routers that show up in a tracert) hop is your modem's 10.x.x.x address.
C:\ipv6\bin>tracert www.cablevision.com
Tracing route to www.cablevision.com [66.54.41.193] over a maximum of 30 hops:
1 6 ms 6 ms 7 ms 10.41.xx.x <=--- 2 10 ms 8 ms 7 ms dstswr1-vlan2.rh.nyk2ny.cv.net [67.83.220.161] 3 8 ms 7 ms 8 ms r3-ge0-1-2.mhe.hcvlny.cv.net [67.83.220.129] 4 12 ms 8 ms 9 ms r1-srp0-0.wan.hcvlny.cv.net [65.19.104.193] <..snip..> Notice the 1st hop... Caveat: Some (very few) members can't do this if their CMTS doesn't reply to ICMP echo requests.
HTH David FWIW I use the -cmmac parameter and specify my HFC mac when running DocsDiag. |
|
 TheWiseGuy Dog And Butterfly Premium,MVM join:2002-07-04 Yonkers, NY
| Hmmm, the 10.xxx.xxxx.xxx IP that is the first hop in a tracert is the Default Gateway IP of the modem subnet, not the private IP of the cable modem. The Modem acts as a transparent bridge and therefore does not decrease the ttl and send an ICMP type 11 when the ttl = 0.
I believe you can see the IP of the cable modem by sniffing traffic and rebooting the modem or by using docsdiag via the formula in the FAQ. -- Dog and Butterfly |
|
  n2jtx
join:2001-01-13 Glen Head, NY
·Optimum Online
| When I traceroute to www.cablevision.com I get the first hop as 10.20.0.1 which is the gateway not the modem (same thing happens on Rogers cable in Mississauga, ON).
For those who have Perl and the Net::SNMP package installed on their system, this script I wrote some time ago can retrieve the network side address (as well as issue an alert if your uploads are capped). You need to be able to get a on 192.168.100.1 so you may need to remove your router temporarily:
# GetIP.pl - Query DOCSIS modem for network side IP address
use Net::SNMP;
# Use the standard Cable Modem address of 192.168.100.1 with a community string of public. # Unless it has been changed, this should work without any problems.
my $HOST = @ARGV[0]; my $HOST = "192.168.100.1" unless $HOST;
($session, $error) = Net::SNMP->session( -hostname => shift | $HOST, -community => shift | "public", -port => shift | 161, -timeout => 60 ); if (!defined($session)) { printf("ERROR: %s.\n", $error); exit 1; }
############################################################ my $OID_IpAdEntAddr = '1.3.6.1.2.1.4.20.1'; my $OID_QosMaxUpstream = '1.3.6.1.2.1.10.127.1.1.3.1.3.1'; ############################################################
$k = SNMPGetNextRequest($session, $OID_IpAdEntAddr); ($IPMib) = keys(%$k); printf("Network IP Address: %s\n", SNMPGetRequest($session, $IPMib) );
$QosMaxUpstream = SNMPGetRequest($session, $OID_QosMaxUpstream); printf("Qos Max Upstream Bandwidth: %s bps\n", Commas($QosMaxUpstream) ); print "\n** THE UPSTREAM BANDWIDTH HAS BEEN CAPPED **\n" if ($QosMaxUpstream < 1000000);
$session->close(); exit 0;
# # Commas( <Number> ) # # RETURN: Comma seperated number #
sub Commas { local($_) = @_; 1 while s/(.*\d)(\d\d\d)/$1,$2/; $_; }
# # SNMPGetRequest(<SNMP Session Object>, <OID String> ) # # RETURN: SNMP value for specified OID string #
sub SNMPGetRequest { local($session) = shift @_; local($OID) = shift @_;
if (!defined($response = $session->get_request($OID))) { printf("ERROR: %s.\n", $session->error()); $session->close(); exit 1; } return $response->{$OID} }
# # SNMPGetNextRequest(<SNMP Session Object>, <OID String> ) # # RETURN: Hash containing found OID. #
sub SNMPGetNextRequest { local($session) = shift @_; local($OID) = shift @_;
if (!defined($response = $session->get_next_request($OID))) { printf("ERROR: %s.\n", $session->error()); $session->close(); exit 1; } return $response; } -- I support the right to keep and arm bears. |
|
  StreetSpirit Premium join:2002-08-13 Roslyn, NY
·Optimum Online
·Verizon Online DSL
| The perl script works, thank you, it correctly identifies the private ip of the modem, however maybe you can help me debug this problem.
This is the output I get. I'm using CPAN's Net::SNMP package and ActiveState 5.8.6 Binary Build 811.
[code] $getoolip.pl Network IP Address: 10.41.96.xx == correct (not the gateway) ERROR: Received noSuchName(2) error-status at error-index 1.
$
I'm using Windows XP. I installed Net::SNMP with ppm3 (perl package manager). I ran it and got the above output.
I then installed the entire Win32 build of Net:SNMP with the same results.
My goal is to get this script working under XP. Thanks in advace, David |
|