nobody
2010-06-06 09:19:14 UTC
Hallo,
Geruime tijd geleden heb ik een linksys router gekocht omdat ik dacht dat
dat handig was als ik ooit nog een keer zou gaan internetten. Ooit is al
geruime tijd geleden aangebroken en aan het begin van dat tijdperk
ontdekte ik dat ik de HTTP-interface, die de configuratie software van de
router volgens de docs op 192.168.0.1 moest hebben, onmogelijk kon
vinden. Niet als ik hem achter een Experia Box van KPN hing en niet
achter een FRITZ!Box van xs4all en waarschijnlijk lukt het ook al niet
als ik hem ergens achter een andere router hang. Nu vermoed ik dat een
verkeerde dhcp deamon de oorzaak van het probleem is. Ik heb namelijk de
IP-nummers gescand waar een HTTP-deamon op te vinden was (zie java code
onderaan) en daaruit bleek dat het IP-adres van de deamon bij de FRITZ!
Box in het 192.168.178.x (20 <= x <= 200) segment terecht gekomen was en
bij de Eperia Box zat er een andere deamon op 192.168.0.1 (ik zou niet
weten wat).
Op het IP-adres (192.168.178.25) van de linksys router zit wel een HTTP-
deamon geinstalleerd, maar die doet niks. Als ik een java HTTP-socket
erop zet dan geeft ie een exceptie (ik ben vergeten wat maar dat is ook
niet belangrijk) en ook met een browser krijg je een foutmelding (ook
weer vergeten wat precies, maar dat is ook niet zo belangrijk). De deamon
is er duidelijk wel maar hij functioneert niet normaal. Een duidelijke
foutmelding geeft hij ook niet, want dat zou wel zo prettig geweest zijn.
Nu vermoed ik dat hij het niet doet omdat hij op een voor hem "verkeerd"
IP-adres zit. Ik zou hem dus op 192.168.0.1 moeten zien te krijgen, maar
ik weet niet hoe ik dat moet doen. De FRITZ!Box heeft volgens mij geen
opties om IP-nummers in het 192.168.0.x segment aan te maken en hoe dat
bij andere routers zit weet ik niet maar ik vrees dat de firmware daar
over het algemeen niet genoeg vrijheid voor biedt. Het probleem is dat ik
zonder toegang te hebben tot de HTTP-deamon geen SSID en WPA-key in kan
stellen en dan heb ik niet veel aan die router.
Weet iemand een truc om het ding, zij het maar voor even om hem te kunnen
configureren, aan een goed IP-adres te helpen? Ik zat er zelf aan te
denken om hem met z'n internet ingang aan de eth0 van een PC te hangen
die je dan even voor dhcp-deamon laat spelen met de juiste configuratie,
maar ik heb er geen benul van hoe ik dat zou moeten doen. Ik ben namelijk
een relatieve leek op netwerk/internet-gebied.
Hieronder nog wat java code om IP-poorten te scannen. Je kunt IP-scanners
ook wel bij sourgeforge krijgen maar het is nu eenmaal mijn hobby om
zulke klusjes zelf in elkaar te kloppen. Misschien kan ik er nog eens een
leuke GUI aan kloppen en hem uitbeiden met het hele pakket TCP en UDP ipv
alleen HTTP.
Code copieren naar een file IPscan.java, compileren met
javac IPscan.java
en runnen met
java IPscan
Scan ranges en IP-segmenten moet je in de source aanpassen.
***********************begin IPscan.java*******************************
import java.net.*;
import java.io.*;
import java.util.*;
class IPcheck implements Runnable {
private Thread thr = null;
private String ipstr, prot;
private int port;
public IPcheck(String protc,String ips,int prt) {
ipstr = ips;
port = prt;
prot = protc;
}
public void start() {
thr = new Thread(this);
thr.start();
}
public void stop() {
if (thr != null) thr = null;
}
public void run() {
boolean bv1 = true, bv2 = false; // verbose errors
try {
URL u = new URL(prot+"://"+ipstr+":"+port+"/");
BufferedReader br = new BufferedReader(new
InputStreamReader(u.openStream()));
String s;
LinkedList list = new LinkedList();
while ((s = br.readLine()) != null) list.add(s);
br.close();
if (list.size() > 0) {
PrintStream pip = null;
try {
File tmp = new File(prot+"-"+ipstr
+".html");
if (!tmp.exists())
tmp.createNewFile();
if (tmp.canWrite()) pip = new
PrintStream(tmp);
} catch (Exception e) {
if (bv1) System.err.println(prot
+"://"+ipstr+":"+port+"/ "+e.toString());
}
if (pip != null) for (int i=0;i<list.size
();i++) pip.println((String)list.get(i));
System.out.println(ipstr);
}
} catch(Exception e) {
if (bv2) System.err.println(prot+"://"+ipstr
+":"+port+"/ "+e.toString());
}
}
}
class IPscan implements Runnable {
private Thread thr = null;
private IPscan() {}
private void start() {
if (thr == null) {
thr = new Thread(this);
thr.start();
}
}
private void stop() {
if (thr != null) thr = null;
System.gc();
}
public void run() {
int ipb = 0, ipe = 255, port = 80/*8080*/, idelay = 50;
String ipstr, ipsb = "192.168.178.", ipse = ""; // from
192.168.178.ipb to 192.168.178.ipe
//String ipstr, ipsb = "192.168.", ipse = ".1"; // from
192.168.ipb.1 to 192.168.ipe.1
IPcheck ipc;
for (int i=ipb;i<=ipe;i++) {
ipstr = ipsb + i + ipse;
try {
ipc = new IPcheck("http",ipstr,port);
ipc.start();
thr.sleep(idelay);
ipc.stop();
} catch(Exception e) {System.err.println
("http://"+ipstr+"/ "+e.toString()); }
}
System.gc();
}
public static void main(String args[]) {
IPscan ipscan;
ipscan = new IPscan();
ipscan.start();
}
}
***********************end IPscan.java*******************************
Groeten
nobody.
Geruime tijd geleden heb ik een linksys router gekocht omdat ik dacht dat
dat handig was als ik ooit nog een keer zou gaan internetten. Ooit is al
geruime tijd geleden aangebroken en aan het begin van dat tijdperk
ontdekte ik dat ik de HTTP-interface, die de configuratie software van de
router volgens de docs op 192.168.0.1 moest hebben, onmogelijk kon
vinden. Niet als ik hem achter een Experia Box van KPN hing en niet
achter een FRITZ!Box van xs4all en waarschijnlijk lukt het ook al niet
als ik hem ergens achter een andere router hang. Nu vermoed ik dat een
verkeerde dhcp deamon de oorzaak van het probleem is. Ik heb namelijk de
IP-nummers gescand waar een HTTP-deamon op te vinden was (zie java code
onderaan) en daaruit bleek dat het IP-adres van de deamon bij de FRITZ!
Box in het 192.168.178.x (20 <= x <= 200) segment terecht gekomen was en
bij de Eperia Box zat er een andere deamon op 192.168.0.1 (ik zou niet
weten wat).
Op het IP-adres (192.168.178.25) van de linksys router zit wel een HTTP-
deamon geinstalleerd, maar die doet niks. Als ik een java HTTP-socket
erop zet dan geeft ie een exceptie (ik ben vergeten wat maar dat is ook
niet belangrijk) en ook met een browser krijg je een foutmelding (ook
weer vergeten wat precies, maar dat is ook niet zo belangrijk). De deamon
is er duidelijk wel maar hij functioneert niet normaal. Een duidelijke
foutmelding geeft hij ook niet, want dat zou wel zo prettig geweest zijn.
Nu vermoed ik dat hij het niet doet omdat hij op een voor hem "verkeerd"
IP-adres zit. Ik zou hem dus op 192.168.0.1 moeten zien te krijgen, maar
ik weet niet hoe ik dat moet doen. De FRITZ!Box heeft volgens mij geen
opties om IP-nummers in het 192.168.0.x segment aan te maken en hoe dat
bij andere routers zit weet ik niet maar ik vrees dat de firmware daar
over het algemeen niet genoeg vrijheid voor biedt. Het probleem is dat ik
zonder toegang te hebben tot de HTTP-deamon geen SSID en WPA-key in kan
stellen en dan heb ik niet veel aan die router.
Weet iemand een truc om het ding, zij het maar voor even om hem te kunnen
configureren, aan een goed IP-adres te helpen? Ik zat er zelf aan te
denken om hem met z'n internet ingang aan de eth0 van een PC te hangen
die je dan even voor dhcp-deamon laat spelen met de juiste configuratie,
maar ik heb er geen benul van hoe ik dat zou moeten doen. Ik ben namelijk
een relatieve leek op netwerk/internet-gebied.
Hieronder nog wat java code om IP-poorten te scannen. Je kunt IP-scanners
ook wel bij sourgeforge krijgen maar het is nu eenmaal mijn hobby om
zulke klusjes zelf in elkaar te kloppen. Misschien kan ik er nog eens een
leuke GUI aan kloppen en hem uitbeiden met het hele pakket TCP en UDP ipv
alleen HTTP.
Code copieren naar een file IPscan.java, compileren met
javac IPscan.java
en runnen met
java IPscan
Scan ranges en IP-segmenten moet je in de source aanpassen.
***********************begin IPscan.java*******************************
import java.net.*;
import java.io.*;
import java.util.*;
class IPcheck implements Runnable {
private Thread thr = null;
private String ipstr, prot;
private int port;
public IPcheck(String protc,String ips,int prt) {
ipstr = ips;
port = prt;
prot = protc;
}
public void start() {
thr = new Thread(this);
thr.start();
}
public void stop() {
if (thr != null) thr = null;
}
public void run() {
boolean bv1 = true, bv2 = false; // verbose errors
try {
URL u = new URL(prot+"://"+ipstr+":"+port+"/");
BufferedReader br = new BufferedReader(new
InputStreamReader(u.openStream()));
String s;
LinkedList list = new LinkedList();
while ((s = br.readLine()) != null) list.add(s);
br.close();
if (list.size() > 0) {
PrintStream pip = null;
try {
File tmp = new File(prot+"-"+ipstr
+".html");
if (!tmp.exists())
tmp.createNewFile();
if (tmp.canWrite()) pip = new
PrintStream(tmp);
} catch (Exception e) {
if (bv1) System.err.println(prot
+"://"+ipstr+":"+port+"/ "+e.toString());
}
if (pip != null) for (int i=0;i<list.size
();i++) pip.println((String)list.get(i));
System.out.println(ipstr);
}
} catch(Exception e) {
if (bv2) System.err.println(prot+"://"+ipstr
+":"+port+"/ "+e.toString());
}
}
}
class IPscan implements Runnable {
private Thread thr = null;
private IPscan() {}
private void start() {
if (thr == null) {
thr = new Thread(this);
thr.start();
}
}
private void stop() {
if (thr != null) thr = null;
System.gc();
}
public void run() {
int ipb = 0, ipe = 255, port = 80/*8080*/, idelay = 50;
String ipstr, ipsb = "192.168.178.", ipse = ""; // from
192.168.178.ipb to 192.168.178.ipe
//String ipstr, ipsb = "192.168.", ipse = ".1"; // from
192.168.ipb.1 to 192.168.ipe.1
IPcheck ipc;
for (int i=ipb;i<=ipe;i++) {
ipstr = ipsb + i + ipse;
try {
ipc = new IPcheck("http",ipstr,port);
ipc.start();
thr.sleep(idelay);
ipc.stop();
} catch(Exception e) {System.err.println
("http://"+ipstr+"/ "+e.toString()); }
}
System.gc();
}
public static void main(String args[]) {
IPscan ipscan;
ipscan = new IPscan();
ipscan.start();
}
}
***********************end IPscan.java*******************************
Groeten
nobody.
--
nobody knnows that nobody is perfect
nobody knnows that nobody is perfect