首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

C#中string 有关问题

2012-12-14 
C#中string 问题代码如下,想输出+ GetstringIpAddress(string strIP),也就是IP所查询的地址用的youdao.I

C#中string 问题
代码如下,想输出+ GetstringIpAddress("string strIP"),也就是IP所查询的地址用的youdao.   IP地址我在上面public string GetIP()已经获取,我想在下面的public static string GetstringIpAddress(string strIP)里写上一句strIP=GetIP()所获取的IP如何写

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Net;
using System.Net.Mail;
using System.IO;
using System.Xml;

public partial class _Default : System.Web.UI.Page
{
    public SqlConnection conn;

   
    protected void Page_Load(object sender, EventArgs e)                
    {
        string sConnectionString = @"server=1-IO57X7TLRRVDX;database=shhr;user id=sa;password=111111;";
        string sSql = "insert into IP(ip,DateTime,area) values('" + GetIP() + "',getdate(),'" + GetstringIpAddress("string strIP") + "')";
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = sConnectionString;
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = sSql;
        cmd.Connection = conn;
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

    }

    public string GetIP()
    {
        string result = String.Empty;

        result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        if (string.IsNullOrEmpty(result))
        {
            result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
        }
        if (string.IsNullOrEmpty(result))
        {
            result = HttpContext.Current.Request.UserHostAddress;
        }
        if (string.IsNullOrEmpty(result))
        {
            return "127.0.0.1";
        }
        return result;
    }

    public static string GetstringIpAddress(string strIP)//strIP为IP
        {


            
            string sURL = "http://www.youdao.com/smartresult-xml/search.s?type=ip&q="+strIP+"";//youdao的URL
            string stringIpAddress = "";
            using (XmlReader read = XmlReader.Create(sURL))//获取youdao返回的xml格式文件内容
            {
                while (read.Read())
                {
                    switch (read.NodeType)
                    {
                        case XmlNodeType.Text://取xml格式文件当中的文本内容
                            if (string.Format("{0}", read.Value).ToString().Trim() != strIP)//youdao返回的xml格式文件内容一个是IP,另一个是IP地址,如果不是IP,那么就是IP地址
                            {
                                stringIpAddress=string.Format("{0}", read.Value).ToString().Trim();//赋值
                            }
                            break;
                        //other
                    }
                }
            }
            return stringIpAddress;
        }

}


[最优解释]
你把string result = String.Empty;定义成全局变量

   public string GetIP()
    {

        result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        if (string.IsNullOrEmpty(result))
        {
            result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
        }
        if (string.IsNullOrEmpty(result))
        {
            result = HttpContext.Current.Request.UserHostAddress;


        }
        if (string.IsNullOrEmpty(result))
        {
            return "127.0.0.1";
        }
        return result;
    }

 public static string GetstringIpAddress()//strIP为IP
这个方法不用写参数了,直接调用result 就是IP了
[其他解释]


你是放在另一个类里再调用吗?把方法改成static

[其他解释]
引用:
引用:你把string result = String.Empty;定义成全局变量
C# code?12345678910111213141516171819   public string GetIP()    {         result = HttpContext.Current.Request.ServerVariab……

把方法改成static,用的时候类要实例化

a a1=new a();
a1.GetIP();


[其他解释]
引用:

把方法作为参数需要用到我委托。。简单的事简单做。。

public static string GetstringIpAddress()

     string strIP= GetIP();//strIP
     //……你自己的那些代码
     


[其他解释]
自己顶啊啊啊啊 
[其他解释]
strIP = GetIP(),
就是想用GetIp获得的IP让他等于strIP

[其他解释]
引用:
你把string result = String.Empty;定义成全局变量
C# code?12345678910111213141516171819   public string GetIP()    {         result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_F……


但是我如果改成全局的 也就是 
public class a
{
public string GetIP()
等等

}
上面   string sSql = "insert into IP(ip,DateTime,area) values('" + GetIP() + "',getdate(),'" + GetstringIpAddress("string strIP") + "')";
values我如何写? a.GetIP()貌似不行
[其他解释]
求大神啊啊  啊啊
[其他解释]
引用:

咳咳。。。没加static时候要实例化。。。
[其他解释]
引用:
引用:引用:你把string result = String.Empty;定义成全局变量
C# code?12345678910111213141516171819   public string GetIP()    {         result = HttpContext.Current.……



我问下啊 不知道这样可以不,
直接public static string GetIP()
{
  string result =String.empty;
}

在下面还有个public,  
public static string GetstringIpAddress(string strIP)//strIP


为IP

直接把这里的string strIP改成上面public里 result 或者GetIP(),让他直接使用上面获取的IP地址,怎么改啊?
[其他解释]
求具体该法啊
[其他解释]
很复杂么,
在你的方法中把static去掉
然后在pageload中


string ip=?GetIP();
string sSql = string.Format("insert into IP(ip,DateTime,area) values('{0}',getdate(),'{1}')",ip ,GetstringIpAddress(ip));


[其他解释]
引用:
很复杂么,
在你的方法中把static去掉
然后在pageload中
C# code?1234string ip= GetIP();string sSql = string.Format("insert into IP(ip,DateTime,area) values('{0}',getdate(),'{1}')",ip ,GetstringIpAddress(ip……


+1
[其他解释]
引用:
代码如下,想输出+ GetstringIpAddress("string strIP"),也就是IP所查询的地址用的youdao.   IP地址我在上面public string GetIP()已经获取,我想在下面的public static string GetstringIpAddress(string strIP)里写上一句strIP=GetIP()所获取的IP如何……


我看不明白: public static string GetstringIpAddress(string strIP)//strIP为IP 这个方法为啥要设置为static。这不是麻烦吗?

[其他解释]
问题已解决啊啊啊

热点排行