2017-06-14 58 views
2

嘿,我真的很感激,如果你能为我提供一个例子,其中类型脚本类可以获得客户端IP地址和浏览器,客户端是使用和设置变量如何从角度(类型脚本)从浏览器获取客户端IP地址

我想要做这类型的脚本不是在Java脚本这些值是可能的,如果不是如何使用脚本类型

做到这一点 - 因此,例如,我可以 1 )在向后台数据库提交表单时设置这些变量 2)例如,我可以向用户显示他正在使用的浏览器 任何帮助,将不胜感激感谢

+0

[如何使用javascript获取客户端的IP地址?](https://stackoverflow.com/questions/391979/how-to-get-clients-ip-address-using-javascript-only) – str

+0

https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator – str

+0

它可能会帮助你们 - https://www.code-sample.com/2018/01/get-client- ip-address-angular-4-and-5.html –

回答

2

IP的所有细节,非常感谢,非常好的解决方案 我把它当作我的问题的基础,但我不解决这个问题,因为它给我的互联网的公共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 
    } 

我希望能为你的朋友

拥抱!

+0

这没有格式化为答案 - 这个答案属于评论。 – Eli

+1

不要使用内部IP地址 – duardbr

3

你应该尝试这样

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

或试试这个networkinterface.getIPAddress(function(ip){ alert(ip); }); – hamad

+0

谢谢你的回答哈马德,但这不是工作在类型脚本类 –

0

试试这个:

创建提供商,并与所需的依赖增加功能:

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

+0

感谢您的答案,但为什么我应该在服务中提供id参数,而我应该从服务器获取数据,我不认为getIP(id),是在我们的情况下正确的签名 –

+0

这是我的打字错误,不需要ID –

+0

那么这是什么返回一个字符串的对象或什么? –

相关问题