web-dev-qa-db-fra.com

Comment obtenir l'adresse IP du client à partir d'un navigateur en mode angulaire (type script)

Salut, j'apprécierais vraiment si vous pouviez me fournir un exemple dans lequel une classe de script de type peut obtenir l'adresse IP du client et le navigateur utilisé par le client et définir ces valeurs dans des variables 

je veux faire cela dans le script de type pas dans le script Java est-ce possible et sinon comment le faire avec le script de type 

-So Par exemple, je peux 1) définir ces variables lors de l'envoi du formulaire à la base de données à l'arrière-plan 2) Je peux par exemple afficher pour l'utilisateur le navigateur qu'il utilise. toute aide serait appréciée Merci

4
Ala'a Mezian

Merci beaucoup, très bonne solution Je l'ai prise comme base pour mon problème mais je ne l'ai pas résolue car elle me donnait l'adresse IP publique du serveur Internet . Pour un réseau interne avec DHCP, changez le URL par le suivant:

  getIpCliente(): Observable<string> {
      return this.http.get('http://api.ipify.org/?format=jsonp&callback=JSONP_CALLBACK') // ...using post request '
      .map((res:Response) => {console.log('res ', res);
                              console.log('res.json() ', res.text());
                              //console.log('parseado ', JSON.parse(res.text()));
                              console.log('parseado  stringify ', JSON.stringify(res.text()));
                              let ipVar = res.text();
                              let num = ipVar.indexOf(":");
                              let num2 = ipVar.indexOf("\"});");
                              ipVar = ipVar.slice(num+2,num2);
                              console.log('ipVar -- ',ipVar);
                              return ipVar}); // ...and calling .json() on the response to return data
      //.catch((error:any) => Observable.throw(error.json().error || 'Server error')); //...errors if any
  }

J'espère te servir des amis

Câlins!

4
Juan Ignacio Liska

Tu devrais essayer comme ça

var json = 'http://ipv4.myexternalip.com/json';
   $http.get(json).then(function(result) {
    console.log(result.data.ip)
},  function(e) {
   alert("error");
});
3
hamad

Essaye ça :

Créer un fournisseur et ajouter une fonction avec les dépendances requises:

import { Injectable }     from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/Rx';


 //  Function :

getIP(): Observable<Data[]> {
    return this.http.get('http://ipinfo.io') // ...using post request
    .map((res:Response) => res.json()) // ...and calling .json() on the response to return data
    .catch((error:any) => Observable.throw(error.json().error || 'Server error')); //...errors if any
}

Code du contrôleur:

getIP() {
    this.loading = true;
    this._myIPService.getIP()
    .subscribe(
        IPDetails => this.IppDetails,
        error =>  this.errorMessage = <any>error
        );
}

Vous aurez tous les détails de l'IP dans this.IppDetails

0
Sangwin Gawande