angularjs 如何在angular中从浏览器获取客户端IP地址(typescript)

xienkqul  于 2022-10-31  发布在  Angular
关注(0)|答案(4)|浏览(296)

如果您能提供一个示例,其中类型脚本类可以获取客户端的IP地址和客户端正在使用的浏览器,并在变量中设置这些值,我将非常感激
我想在类型脚本中完成此操作,而不是在javascript中,这是可能的,如果不是,如何使用类型脚本完成此操作

  • 比如说我可以
    1.在将表单提交到后端的数据库时设置这些变量
    1.我可以例如显示用户的浏览器,他正在使用任何帮助将不胜感激,谢谢
bybem2ql

bybem2ql1#

非常感谢,非常好的解决方案我把它作为我的问题的基础,但我没有解决它,因为它给了我互联网服务器的公共IP。对于一个内部网络与DHCP,更改URL如下:

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
  }

希望能为各位朋友服务

t9aqgxwy

t9aqgxwy2#

尝试https://geolocation-db.com的服务以获取用户的公共ip地址。

import { HttpClient } from "@angular/common/http";
import { catchError, tap } from "rxjs/operators";

this.http.get<any>('https://geolocation-db.com/json/')
  .pipe(
    catchError(err => {
      return throwError(err);
    }),
    tap(response => {
      console.log(response.IPv4);
    })
  )
snvhrwxg

snvhrwxg3#

你应该这样试试

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

yh2wf1be4#

试试这个:
创建提供程序并添加具有所需依赖项的函数:

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
}

控制器代码:

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

您将在this.IppDetails中获得IP的所有详细信息

相关问题