`

axis 获取客户端ip信息

阅读更多
需要jar包:axis.jar.
下载上传文件并改名:axis.jar
package com.myland.jp.itfc.webservice.client.getipaddress;

import java.util.Vector;

import javax.xml.namespace.QName;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

/**

 * @create 2015年3月25日
 * 
 * 获取客户端ip信息
 * 
 */
public class GetIpAddressClient {

    private static final Logger log = LogManager.getLogger(GetIpAddressClient.class);

    /**
     * webservice接口地址
     */
    private static String SERVER_URL = "http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx";

    /**
     * 调用的方法名
     */
    private static String SERVER_METHOD = "getCountryCityByIp";

    private static String SERVER_OPERATION_NAME = "http://WebXml.com.cn/";

    /**
     * 过输入IP地址查询国家、城市、所有者等信息。
     * 没有注明国家的为中国
     * @create  2015年3月25日  下午2:53:03
     * @param ip
     * @return
     */
    public static String getCountryCityByIp(String ip) {

        String result = null;

        Service service = new Service();
        Call call;

        try {
            call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(SERVER_URL));
            call.setOperationName(new QName(SERVER_OPERATION_NAME, SERVER_METHOD));
            call.setReturnType(new QName(SERVER_OPERATION_NAME, SERVER_METHOD), Vector.class);
            call.setUseSOAPAction(true);
            call.setSOAPActionURI(SERVER_OPERATION_NAME+SERVER_METHOD);

            call.addParameter(new QName(SERVER_OPERATION_NAME, "theIpAddress"),
                    org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);

            Vector v = (Vector) call.invoke(new Object[] { ip });

            for (int i = 0; i < v.size(); i++) {
                System.out.println(v.get(i));
            }

        } catch(Exception e) {
            log.error(e.getMessage(), e);
        }

        return result;
    }

    public static void main(String[] args) {
        getCountryCityByIp("124.133.246.163");
    }

}



控制台打印:
124.133.246.163
山东省济南市 联通
分享到:
评论

相关推荐

    获取客户端IP地址所需Jar包

    使用Axis发布的webservice,用户服务器端获取客户端的IP地址

    joeylv#joscrapy#【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)1

    一、前言由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户

    ASP EXCEL导入SQL

    REST不关心客户端的状态,客户端的状态自己来管理,这是AJAX技术的应用之地。通过AJAX技术,可以发挥有状态网络客户机的优势。而REST的服务器关心的是从所有网络客户端发送到服务器操作的顺序。这样使得互联网这样一...

    JAVA上百实例源码以及开源项目源代码

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

    JAVA上百实例源码以及开源项目

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

    java开源包1

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包11

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包2

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包3

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包6

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包5

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包10

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包4

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包8

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包7

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包9

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    java开源包101

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

    Java资源包01

    3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...

Global site tag (gtag.js) - Google Analytics