» »

[Java+MySQL]Pregled mysql streznikov v lokalnem omrezju

[Java+MySQL]Pregled mysql streznikov v lokalnem omrezju

KernelPanic ::

Pozdravljeni!

Imam java aplikacijo, ki zajema in prikazuje podatke iz mysql streznika. To dela vse ok in tu ni nekega "rocket science"-a :D. Uglavnem, sedaj me pa zanima, kako bi z javo dobil listo vseh mysql streznikov v lokalnem omrezju (naslovi 192.168.x.x - 192.168.255.255). Nato bi kliknil izbrani streznik in naslednji korak bi bil izpis vseh baz na tem mysql strezniku (tukaj niamm tezav, pozenes samo SHOW TABLES in preneses rezultat v javo)?

S spostovanjem in vnaprej se zahvaljujem za pomoc,
M.

kunigunda ::

For zanka, odpres socket na IP v zanki port 3306, itak bos pa vnaprej moral pripraviti nek config fajl in ne rabis potem skenirati, razn ce mas na vseh bazah enaka gesla.

KernelPanic ::

Mas kaksen primer, da si pogledam?

kunigunda ::

Nimam, tkole nekak...

import java.net.* ;
import java.io.* ;

for (int i=0;i<=255;i++) {
   for (int j=0;j<=255;j++) {
   	  String ip="192.168." + i + "." + j;
      if (mysqlAlive(ip)) {
      	 System.out.println("On IP " + ip + " I think it's mysql server") ;
      }
   }
}

private boolean mysqlAlive(String ip)
{
	try {
		Socket s=new Socket() ;
        s.connect(new InetSocketAddress(ip, 3306), 1000/*timeout*/) ;
		s.close() ;
		return true ;
	} catch (Exception ignore) {} ;
	return false ;
}

KernelPanic ::

Cak, a potem je na enem socketu lahko vec mysql serverjev? Se ne tepejo med sabo?

Spura ::

Na enem IPju in enem portu poslusa en server.

KernelPanic ::

Ok, se mi je zdelo. Torej ta koda, ne glede na to, hvala za njo, ni cisto pravilna?

Daedalus ::

Če pravilno razumem, tista koda preveri, na katerih IP-jih v danem subnetu je odprt port 3306. Če najde ta port odprt, pol sklepa, da tam posluša mysql server.
Man is condemned to be free; because once thrown into the world,
he is responsible for everything he does.
[J.P.Sartre]

KernelPanic ::

Ja no saj to sem mislil, Daedalues (in seveda ostali), je kaksna varianta, da bi na portu s to kodo dodal, da "vprasas: halo, kdo je na portu 3306" in ce dobim odgovor v stilu "mysql-5.xxxx.whatever", je to mysql server. Bi se to dalo?

kunigunda ::

Kernelpanic, ta koda (sicer sm jo kr klele pisu notri :P) samo odpre dolocen ip port 3306, ce je uspesno,socket zapre nazaj,
in javi da je verjetnost da je na tem ipju mysql. Ja mislm da kuj k se konektas na 3306 ze dobis od mysql-a response,
odpri inputstreamreader med connect in close in preber 20-30 bytov pa poglej kaj notri dobis.
Lohk tud na roke telnet na port 3306 na en mysql nardis da vids kaj dobis prej.

Spura ::

Pa ne vem ce niso IPji z 0 al pa 255 posebni.

KernelPanic ::

kunigunda je izjavil:

Kernelpanic, ta koda (sicer sm jo kr klele pisu notri :P) samo odpre dolocen ip port 3306, ce je uspesno,socket zapre nazaj,
in javi da je verjetnost da je na tem ipju mysql. Ja mislm da kuj k se konektas na 3306 ze dobis od mysql-a response,
odpri inputstreamreader med connect in close in preber 20-30 bytov pa poglej kaj notri dobis.
Lohk tud na roke telnet na port 3306 na en mysql nardis da vids kaj dobis prej.
No saj tocno to sem imel v mislih, bom sedaj probal, samo po sestanku ... Direktor ma za povedat par stwari ...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Postavitev mySQL

Oddelek: Programiranje
92221 (1799) M01O
»

[mysql] malo bolj zahtevna poizvedba

Oddelek: Programiranje
161584 (1435) destiny
»

MYSQL baza na oddaljenem strežniku

Oddelek: Izdelava spletišč
81207 (1080) Skrat
»

Dodajanje .sql datoteke v Mysql bazo!

Oddelek: Izdelava spletišč
141319 (1106) Nox
»

Java problemček

Oddelek: Programiranje
141443 (1236) Imortales

Več podobnih tem