如何使用Java在GWAN服务器中获取客户端IP地址?

时间:2014-05-02 14:18:44

标签: java ip-address g-wan

嗯,标题说明了一切:

如何使用Java在GWAN服务器中获取客户端IP地址?

我在C中看到有一种方法,但在Java中我找不到任何东西。 Java中没有实现与GWAN交互的所有方法吗?

2 个答案:

答案 0 :(得分:0)

简短的回答是肯定的。

实现G-WAN Java API的Gwan.java类以以下注释开头:

// ============================================================================
// Java API calls for the G-WAN Web App. Server (http://trustleap.ch/)
// ----------------------------------------------------------------------------
// Compile with: javac Gwan.java
// 
// The G-WAN API getStrEnv() Java function returns a Java string for:
//
//   REQUEST             +
//   QUERY_STRING        |
//   FRAGMENT_ID         |
//   REQ_ENTITY          |
//   VHOST_ROOT          |
//   WWW_ROOT            |
//   CSP_ROOT            |
//   LOG_ROOT            | a copy of the G-WAN C string
//   HLD_ROOT            | 
//   FNT_ROOT            |
//   REMOTE_ADDR         |
//   USER_AGENT          |
//   SERVER_SOFTWARE     |
//   SERVER_NAME         |
//   SERVER_ADDR         |
//   SERVER_DATE         +
//
// Use getIntEnv() for the many integer values (like REQUEST_LEN)
//
// ...but these get_env() values are ignored by Java getxxxEnv() calls:
//
//   HTTP_CODE           +
//   SCRIPT_TMO          |
//   KALIVE_TMO          |
//   REQUEST_TMO         | 
//   DOWNLOAD_SPEED      | pointers on integers
//   MIN_READ_SPEED      |
//   MAX_ENTITY_SIZE     |
//   US_HANDLER_STATES   +
//
//   US_HANDLER_DATA     +
//   US_VHOST_DATA       | pointers on user-defined data structures
//   US_SERVER_DATA      +
//
//   READ_XBUF           + pointers on G-WAN internal structures
//   HTTP_HEADERS        +
//
// If you want to contribute in this matter (by helping to implement Java 
// G-WAN API in C with JNI), then drop us a line, you are most welcome!
// ----------------------------------------------------------------------------

所以,是的,您可以使用值Gwan.getIntEnv()的{​​{1}}来访问G-WAN服务器看到的客户端IP地址。

答案 1 :(得分:0)

你好@Gil回复,

也许该代码在其他版本中?这就是我在网页上提供的持续Gwan版本中看到的内容:

Gwan.java:

// ============================================================================ 
// Java API calls for the G-WAN Web App. Server (trustleap.ch) 
// ---------------------------------------------------------------------------- 
package api; 
public class Gwan { 
public static native long getReply(long env); 
    public static native void xbufCat (long ctx, String str);
    public static native long cycles64();
    public static native long getNs   ();
    public static native long getUs   ();
    public static native long getMs   ();
    public static native void logErr  (long env, String msg);
    public static native void report  (long reply, int html_format);
}
// ============================================================================
// End of Source Code
// ============================================================================