Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 19 octobre 2005 - 10 h 44 m 26 s |
|
|
Grace a kha je m'interesse de plus en plus au java et je transforme petit à petit certains scripts php en java
Pour l'instant je planche sur un script PHP que j avais essaye de faire il y a un certain temps qui devait récupérer l'adresse mac du pc et bloquer le fonctionnement du reste du script si l'adresse mac changeait.
Est il possible de recuperer ,en java au lancement du jar, l'adresse mac pour la première fois du pc ou est le script, le mettre ds un fichier crypté intégré au jar puis faire une vérification a chaque lancement que l'adresse mac n'a pas changé?
Au cas ou le système va essayer de chercher le fichier mais il n'existe pas ou si l'adresse mac du pc ne correspond pas a celle du fichier,un message doit dire qu il y a un pb et que rien ne sera fait.
merci d avance
|
|
| |
- je cherche un emploi
ICI
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 19 octobre 2005 - 10 h 47 m 10 s |
|
|
il faudrait a première utiliser :
Process p = Runtime.getRuntime().exec("ipconfig.exe /all");
et recupérer dans la reponse ce qu on veut...
ms comment récuperer ce qu on veut ds la reponse?
|
|
| |
- je cherche un emploi
ICI
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 19 octobre 2005 - 13 h 19 m 16 s |
|
|
A coup de regexp...
Ou alors en faisant un Process p = Runtime.getRuntime().exec("arp -a"); le traitement est peut-être plus facile
Sinon, il n'existe rien dans l'API Java pour récupérer cette valeur, au pire, tu récupères le nom de l'interface (cf. java.net.NetworkInterface)
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 19 octobre 2005 - 13 h 29 m 33 s |
|
|
Sinon, si tu es sous linux, fais un Process p = Runtime.getRuntime().exec("/sbin/ifconfig | awk "/<nominterface> / { print \$5 }"");
et ensuite p.getInputStream(BufferedInputStream foo);
puis le traitement sur foo
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 19 octobre 2005 - 13 h 34 m 32 s |
|
|
C'est moche ...
Et s'il faut changer la carte reseau, on remet en dur dans le code la nouvelle MAC ??
|
|
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 19 octobre 2005 - 13 h 37 m 36 s |
|
|
Le 19 octobre 2005 - 13 h 34, iraysyvalo a écrit :
C'est moche ...
Et s'il faut changer la carte reseau, on remet en dur dans le code la nouvelle MAC ??
|
Non, comme je disais un post plus haut, il y a moyen de récupérer le nom de la carte réseau sur laquelle l'IP est bindée 
Donc on peut s'y affranchir
Par contre, je suis d'accord, passer par une commande externe, c'est affreux 
D'où l'intêret d'arp, qui est dispo sous Nux comme sous Win
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 19 octobre 2005 - 13 h 41 m 22 s |
|
|
C'est le fait de baser le truc sur l'adresse MAC qui m'interpelle ..
|
|
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 19 octobre 2005 - 16 h 10 m 18 s |
|
|
oui je sais ca oblige a ne pas changer trop svt de carte reseau
mais c est le seul moyen correct que j ai trouver pour que mes scripts partent pas a droite et a gauche sans gestion
certains qu ils soient copié ca me pose aucun pb, d'autre ca me deplairait bcp plus car certain je me suis creusé l'échine a les faire
si vous avez d'autres idees qui evitent de passer sur un autre ordi sans pb je veux bien...
ca c sera sous environnement windows
|
|
| |
Message édité 1 fois, la dernière par Florent42 le 19 octobre 2005 - 16 h 12. |
| |
- je cherche un emploi
ICI
|
Gosseyn
Messages : 286 Inscrit le 24/01/05
Ville : Grenoble
Non connecté
|
|
Posté le 20 octobre 2005 - 13 h 24 m 44 s |
|
|
je vais peut-etre dire une betise mais si c'est un script, il est lisible et editable.
Qu'est-ce qui empeche le "copieur" de l'editer et d'enlever la protection d'exécution lié à l'adresse MAC?
|
|
| |
"Si vous perdez, ne perdez pas la leçon."
Gosseyn
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 20 octobre 2005 - 13 h 45 m 09 s |
|
|
Figure toi que c'est ce qu'on a essayé de lui faire comprendre il y a de cela quelque temps
Néanmoins, une classe Java peut être obfusquée, et donc plus difficilement désassemblable qu'un bête code PHP... Mais c'est sûr que c'est pas la panacée
Pour ce genre de trucs, il existe :
- la confiance en soi-même
- sa fierté ou gloriole que l'on met de côté
- le droit d'auteur et diverses lois sur la copie de code...
A chacun de choisir la méthode la plus appropriée
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 20 octobre 2005 - 15 h 54 m 57 s |
|
|
c pour cela que je me base plus sur java pour sécuriser car je sais que c est un peu plus "intouchable"
|
|
| |
- je cherche un emploi
ICI
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 20 octobre 2005 - 16 h 07 m 41 s |
|
|
Le 20 octobre 2005 - 15 h 54, Florent42 a écrit :
c pour cela que je me base plus sur java pour sécuriser car je sais que c est un peu plus "intouchable"
|
... A condition de bien obfusquer le code  Et encore, c'est pas la panacée
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 20 octobre 2005 - 16 h 20 m 32 s |
|
|
on est bien d accord...le but n est pas de securiser au maximum de tte facon c impossible mais de limiter la casse
c normal qu il m accepte pas:
Process p = Runtime.getRuntime().exec("ipconfig.exe /all");
p.getInputStream(BufferedInputStream(foo));
foo cannot be resolved
pourtant d'après la javadoc:
public BufferedInputStream(InputStream in)
|
|
| |
- je cherche un emploi
ICI
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 20 octobre 2005 - 16 h 47 m 20 s |
|
|
Beh non...
Je t'ai mis foo comme étant le nom d'une variable (comme toto quoi...)
Il faut donc faire un BufferedInputStream foo = p.getInputStream();
Et évidemment, ensuite, tu la lis en faisant un :
1. //erel bug
2.
3. BufferedReader br = new BufferedReader(new InputStreamReader(foo));
4. String res = "";
5. while ((cl = br.readLine()) != null) {
6. res += cl + '\n';
7. }
8.
9. System.out.println(res);
EDIT : Autant pour moi, j'avais marqué une connerie dans mon premier post : tu ne récupères pas la valeur de foo en paramètre mais en sortie de fonction. Honte sur moi et ma vieille fatigue
|
|
| |
Message édité 1 fois, la dernière par gege38 le 20 octobre 2005 - 16 h 50. |
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 20 octobre 2005 - 17 h 04 m 35 s |
|
|
c tout bon l ip config passe bien et s affiche parfaitement
j ai rajouter une librairie par contre
maintenant recuperer l'adresse mac au milieu...tu me parlais de regex pour la recuperer...on est obliger de passer par ca?
|
|
| |
- je cherche un emploi
ICI
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 20 octobre 2005 - 17 h 06 m 41 s |
|
|
Non, tu peux y aller à coup de StringTokenizer...
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 20 octobre 2005 - 17 h 11 m 09 s |
|
|
Si j'étais toi, je me servirais aussi de NetworkInterface pour éviter d'avoir à trop se balader dans la String et connaître de suite l'interface...
Si tu as l'interface, tu peux alors facilement via une tokenization de ta String res obtenir l'adresse MAC
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 20 octobre 2005 - 17 h 20 m 14 s |
|
|
en gros appliquer ca:
StringTokenizer st = new StringTokenizer(res);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
ms ca sera bcp trop decoupé non?a chaque espace avoir un saut de ligne...c vrai que pour l adresse mac vu qu il n y a pas d espace il n y aura pas de saut...
et pour utiliser l'interface:
Process p = Runtime.getRuntime().exec("ipconfig.exe /all").getByInetAddress("192.168.1.1");
|
|
| |
- je cherche un emploi
ICI
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 079 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 20 octobre 2005 - 17 h 38 m 54 s |
|
|
Allez cadeau :
1. //erel, à quand la coloration syntaxique ?
2.
3. String intname = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()).getName();
4.
5. //on cherche l'interface voulue
6. StringTokenizer st = new StringTokenizer(res);
7. while (st.hasMoreTokens() || !((curtok = st.nextToken()).startsWith(intname)));
8.
9. //on est sur la bonne interface, on va jusqu'au mot "DHCP activé", puis on regarde le précédent token...
10. String prectok = curtok;
11. while (st.hasMoreTokens() || !((curtok = st.nextToken()).startsWith("DHCP activ"))) {
12. prectok = curtok;
13. }
14.
15. System.out.println(prectok);
Sous réserves de bugs... J'ai codé à l'arrache donc si ca marche pas, file moi la stack
|
|
| |
Message édité 1 fois, la dernière par gege38 le 20 octobre 2005 - 17 h 40. |
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 20 octobre 2005 - 17 h 49 m 57 s |
|
|
j avais fait ca:
et j obtiens bien l'adresse mac:
String[] result = res.split("\\s");
for (int x=0; x<result.length; x++)
System.out.println(result[145]);
bon je sais...c bcp plus simpliste...
|
|
| |
- je cherche un emploi
ICI
|