如果您能提供一个示例,其中类型脚本类可以获取客户端的IP地址和客户端正在使用的浏览器,并在变量中设置这些值,我将非常感激我想在类型脚本中完成此操作,而不是在javascript中,这是可能的,如果不是,如何使用类型脚本完成此操作
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 }
希望能为各位朋友服务
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); }) )
snvhrwxg3#
你应该这样试试
var json = 'http://ipv4.myexternalip.com/json'; $http.get(json).then(function(result) { console.log(result.data.ip) }, function(e) { alert("error"); });
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的所有详细信息
this.IppDetails
4条答案
按热度按时间bybem2ql1#
非常感谢,非常好的解决方案我把它作为我的问题的基础,但我没有解决它,因为它给了我互联网服务器的公共IP。对于一个内部网络与DHCP,更改URL如下:
希望能为各位朋友服务
t9aqgxwy2#
尝试https://geolocation-db.com的服务以获取用户的公共ip地址。
snvhrwxg3#
你应该这样试试
yh2wf1be4#
试试这个:
创建提供程序并添加具有所需依赖项的函数:
控制器代码:
您将在
this.IppDetails
中获得IP的所有详细信息